Преобразует ЧтениеJSON любой глубины в Соответствие. Пример вызова: //JSONТекст - исходный текст в формате JSON Результат = Неопределено; ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(JSONТекст); ОбработатьJSON(ЧтениеJSON, Результат); //Здесь на выходе из процедуры Результат = Соответствие;
&НаСервере
Процедура ОбработатьJSON(ЧтениеJSON, Результат)
ИмяСвойства = Неопределено;
Пока ЧтениеJSON.Прочитать() Цикл
TипJSON = ЧтениеJSON.ТипТекущегоЗначения;
Если TипJSON = ТипЗначенияJSON.НачалоОбъекта
ИЛИ TипJSON = ТипЗначенияJSON.НачалоМассива Тогда
НовыйОбъект = ?(TипJSON = ТипЗначенияJSON.НачалоОбъекта, Новый Соответствие, Новый Массив);
Если ТипЗнч(Результат) = Тип("Массив") Тогда
Результат.Добавить(НовыйОбъект);
ИначеЕсли ТипЗнч(Результат) = Тип("Соответствие") И ЗначениеЗаполнено(ИмяСвойства) Тогда
Результат.Вставить(ИмяСвойства, НовыйОбъект);
КонецЕсли;
ОбработатьJSON(ЧтениеJSON, НовыйОбъект);
Если Результат = Неопределено Тогда
Результат = НовыйОбъект;
КонецЕсли;
ИначеЕсли TипJSON = ТипЗначенияJSON.ИмяСвойства Тогда
ИмяСвойства = ЧтениеJSON.ТекущееЗначение;
ИначеЕсли TипJSON = ТипЗначенияJSON.Число
ИЛИ TипJSON = ТипЗначенияJSON.Строка
ИЛИ TипJSON = ТипЗначенияJSON.Булево
ИЛИ TипJSON = ТипЗначенияJSON.Null Тогда
Если ТипЗнч(Результат) = Тип("Массив") Тогда
Результат.Добавить(ЧтениеJSON.ТекущееЗначение);
ИначеЕсли ТипЗнч(Результат) = Тип("Соответствие") Тогда
Результат.Вставить(ИмяСвойства, ЧтениеJSON.ТекущееЗначение);
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Чтение файла XML в объект XDTO по схеме *.xsd
Чтение параметров http-запроса в формате x-www-form-urlencoded в соответствие
ПрочитатьСобытияЖурналаРегистрации (БСП)
Функция восстановления значения при чтении JSON (ЧтениеJSON)