|   |   | 
| 
 | Прочитать 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) + по отладчику не подскажу...сам хттп-сервис не делал     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |