|
Прочитать JSON формат | ☑ | ||
---|---|---|---|---|
0
antihacker
22.06.18
✎
14:32
|
Всем привет !
Как прочитать такой JSON формат ? "ДанныеДокумента": [ { "НомДокКлиента": "4155-000000001", "ДатаДокКлиента": "2018-05-05T13:18:11", "ВидДокумента": "УПФПР", "ГодУчета": "2018-12-31T23:59:59", "КодУчреждения": "2530" } ], "ТабЧастьДокумента": [ { "Столбец1": 1, "Столбец2": 2, "Столбец3": 3, "Столбец4": 4, "Столбец5": 5 }, { "Столбец1": 1, "Столбец2": 2, "Столбец3": 3, "Столбец4": 4, "Столбец5": 5 }, { "Столбец1": 1, "Столбец2": 2, "Столбец3": 3, "Столбец4": 4, "Столбец5": 5 } ] }, { "ДанныеДокумента": [ { "НомДокКлиента": "4155-000000001", "ДатаДокКлиента": "2018-05-05T14:16:36", "ВидДокумента": "ИПФПР", "ГодУчета": "", "КодУчреждения": "2530" } ], "ТабЧастьДокумента": [ { "Столбец1": 1, "Столбец2": 2, "Столбец3": 3, "Столбец4": 4, "Столбец5": 5 }, { "Столбец1": 1, "Столбец2": 2, "Столбец3": 3, "Столбец4": 4, "Столбец5": 5 }, { "Столбец1": 1, "Столбец2": 2, "Столбец3": 3, "Столбец4": 4, "Столбец5": 5 } ] } ] |
|||
1
Волшебник
22.06.18
✎
14:33
|
кнопочку Я нажми справа от заголовка темы
|
|||
2
Cyberhawk
22.06.18
✎
14:33
|
ПрочитатьЖСОН
|
|||
3
lodger
22.06.18
✎
14:34
|
новый ЧтениеЖСОН.
|
|||
4
antihacker
22.06.18
✎
14:37
|
Пробовал вот так
Ответ = Новый HTTPСервисОтвет(200); main_data = Запрос.ПараметрыЗапроса.Получить("main_data"); Id_user = Запрос.ПараметрыЗапроса.Получить("id_user"); //Данные документа ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.УстановитьСтроку(main_data); ДанныеДокументаJSON =ПрочитатьJSON(ЧтениеJSON); ЧтениеJSON.Закрыть(); Для Каждого ТекДанный2 Из ДанныеДокументаJSON Цикл Для Каждого ТекДанный Из ТекДанный2 Цикл НайденнаяОрганизация = Справочники.Организации.НайтиПоРеквизиту("КодУчреждения",СокрЛП(ТекДанный.КодУчреждения)); Если НайденнаяОрганизация <> Справочники.Организации.ПустаяСсылка() Тогда //Начинаем создовать документы Если ТекДанный.ВидДокумента = "УПФПР" Тогда НовыйДокументРасхода = Документы.УтвержденныйПланФинансированияПоРасходам.СоздатьДокумент(); ИначеЕсли ТекДанный.ВидДокумента = "ИПФПР" Тогда НовыйДокументРасхода = Документы.ИзмененияПланаФинансированияПоРасходам.СоздатьДокумент(); КонецЕсли; НовыйДокументРасхода.Дата = ТекущаяДата(); НовыйДокументРасхода.Организация = НайденнаяОрганизация; НовыйДокументРасхода.НомДокКлиента = ТекДанный.НомДокКлиента; НовыйДокументРасхода.ДатаДокКлиента = ТекДанный.ДатаДокКлиента; НовыйДокументРасхода.Записать(); Ответ.УстановитьТелоИзСтроки(НайденнаяОрганизация.Наименование, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); Иначе Ответ.УстановитьТелоИзСтроки("Учреждение с кодом - "+ТекДанный.КодУчреждения+" не найден", КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); КонецЕсли; КонецЦикла; Пишет - Ошибка при вызове метода контекста (ПрочитатьJSON)]] |
|||
5
Юрий Лазаренко
22.06.18
✎
14:37
|
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(<ПеременнаяСJSON>); СтруктураJSON = ПрочитатьJSON(ЧтениеJSON); ЧтениеJSON.Закрыть(); |
|||
6
Юрий Лазаренко
22.06.18
✎
14:43
|
(4) JSON у тебя невалидный, поэтому и не читает
|
|||
7
Юрий Лазаренко
22.06.18
✎
14:48
|
Вот валидный:
[ { "ДанныеДокумента": [ { "НомДокКлиента": "4155-000000001", "ДатаДокКлиента": "2018-05-05T13:18:11", "ВидДокумента": "УПФПР", "ГодУчета": "2018-12-31T23:59:59", "КодУчреждения": "2530" } ], "ТабЧастьДокумента": [ { "Столбец1": 1, "Столбец2": 2, "Столбец3": 3, "Столбец4": 4, "Столбец5": 5 }, { "Столбец1": 1, "Столбец2": 2, "Столбец3": 3, "Столбец4": 4, "Столбец5": 5 }, { "Столбец1": 1, "Столбец2": 2, "Столбец3": 3, "Столбец4": 4, "Столбец5": 5 } ] } , { "ДанныеДокумента": [ { "НомДокКлиента": "4155-000000001", "ДатаДокКлиента": "2018-05-05T13:18:11", "ВидДокумента": "УПФПР", "ГодУчета": "2018-12-31T23:59:59", "КодУчреждения": "2530" } ], "ТабЧастьДокумента": [ { "Столбец1": 1, "Столбец2": 2, "Столбец3": 3, "Столбец4": 4, "Столбец5": 5 }, { "Столбец1": 1, "Столбец2": 2, "Столбец3": 3, "Столбец4": 4, "Столбец5": 5 }, { "Столбец1": 1, "Столбец2": 2, "Столбец3": 3, "Столбец4": 4, "Столбец5": 5 } ] } ] |
|||
8
antihacker
22.06.18
✎
14:55
|
Создаю я его вот так.
&НаСервере Функция ПодготовитьДанныедляОотправки() СписокВсехДоковМСВ = Новый Массив; //Цикл по документам Для Каждого ТекДок Из Объект.ДокументыДляСинхронизации Цикл ВозвратРезультатаСКА = Новый Структура(); //Основные данные документа ОсновныеДанныеДокументаМСВ = Новый Массив; ДанныеДокументаСКА = Новый Структура(); ДанныеДокументаСКА.Вставить("НомДокКлиента" ,ТекДок.Документ.Номер); ДанныеДокументаСКА.Вставить("ДатаДокКлиента",ТекДок.Документ.Дата); Если ТипЗнч(ТекДок.Документ) = Тип("ДокументСсылка.УтвержденныйПланФинансированияПоРасходам") Тогда ДанныеДокументаСКА.Вставить("ВидДокумента" ,"УПФПР"); ДанныеДокументаСКА.Вставить("ГодУчета" ,ТекДок.Документ.ГодУчета); ИначеЕсли ТипЗнч(ТекДок.Документ) = Тип("ДокументСсылка.ИзмененияПланаФинансированияПоРасходам") Тогда ДанныеДокументаСКА.Вставить("ВидДокумента" ,"ИПФПР"); ДанныеДокументаСКА.Вставить("ГодУчета" ,""); КонецЕсли; ДанныеДокументаСКА.Вставить("КодУчреждения" ,СокрЛП(ТекДок.Документ.Организация.КодУчреждения)); ОсновныеДанныеДокументаМСВ.Добавить(ДанныеДокументаСКА); //Табличная часть документа МассивСписокПКП = Новый Массив; Для Шаг = 1 По 3 Цикл МассивСписокПКП.Добавить(Новый Структура("Столбец1, Столбец2, Столбец3, Столбец4,Столбец5",1,2,3,4,5)); КонецЦикла; ВозвратРезультатаСКА.Вставить("ДанныеДокумента" ,ОсновныеДанныеДокументаМСВ); ВозвратРезультатаСКА.Вставить("ТабЧастьДокумента",МассивСписокПКП); СписокВсехДоковМСВ.Добавить(ВозвратРезультатаСКА); Конеццикла; //Конвертируем в JSON ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(); ЗаписатьJSON(ЗаписьJSON, СписокВсехДоковМСВ); СписокВсехДоковМ = ЗаписьJSON.Закрыть(); Возврат СписокВсехДоковМ; КонецФункции Где ошибка ? |
|||
9
dezss
22.06.18
✎
14:57
|
Формат даты тебе еще надо передавать в ПрочитатьJSON
И имена параметров, хранящих даты. а вообще странно выглядит твой JSON. (7) + ага...тож сделал) |
|||
10
antihacker
22.06.18
✎
14:58
|
И есть ли минус в том что бы, передовать большие JSON строки ?
Мне пришлось изменить в ISS параметр maximum query string на 20 000 |
|||
11
dezss
22.06.18
✎
15:00
|
(10) у мну иногда передаются файлы по 16 мегабайт и ничего.
|
|||
12
antihacker
22.06.18
✎
15:31
|
Вроде читает. То есть формат правильный.Но ругается Поле объекта не обнаружено (КодУчреждения)]]
Видимо не правильно достаю внутренние элементы JSOn -а |
|||
13
dezss
22.06.18
✎
15:53
|
(12) отладчик в руки и смотри
|
|||
14
antihacker
22.06.18
✎
16:01
|
ОТправляю нормально. А вот ни как не могу настроить отладчик для HTTP сервис. Не ловит зараза. Там помотрел что да и как
|
|||
15
dezss
22.06.18
✎
16:06
|
(14) ну тогда цикл по структуре и выводи куда-нить лог с ключ - значение...
|
|||
16
dezss
22.06.18
✎
16:06
|
(15) + по отладчику не подскажу...сам хттп-сервис не делал
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |