Сразу хочу сказать, что этот вопрос возник не после сегодняшнего обновления (за которое огромное спасибо !).
Я давно это место обходил, но раз уже сегодня пошла переделка старого кода и костылей - решил сделать тест и показать ...

Два эквивалентных способа загрузить простую группу и список в ней - дают разный результат:
Код: Выделить всё
Data
Root &cJson
Object &cJson
Json cJSONFactory
JStr String('{{"menu":{{"T10":"lunch","T11":[{{"T12":"Пицца"},{{"T12":"Цезарь"}]}}')
gResponse Group
T10 CString(21)
T11 &Q_List
end
Q_List Queue,Type
T12 CString(21)
end
qList Queue(Q_List).
Code
! --- 1 ВАРИАНТ (КЛАССИКА) ---
Root &= Json.Parse(JStr)
If Not Root &= Null
Object &= Root.FindObjectItem('menu')
If Not Object &= Null
Object.ToGroup(gResponse,,'[{{"name":"T11","instance":' & Instance(qList,Thread()) & '}]')
Message(gResponse.T10 & ' : ' & Records(qList)) ! lunch : 2 / OK ! :)
end
Root.Delete()
end
! --- 2 ВАРИАНТ (УДОБНЫЙ) ---
Clear(gResponse)
Free(qList)
Json.ToGroup(JStr,'menu',gResponse,'[{{"name":"T11","instance":' & Instance(qList,Thread()) & '}]')
Message(gResponse.T10 & ' : ' & Records(qList)) ! lunch : 0 / BAD ! :(
