Добрый день! Необходимо записать массив JSON формата { [<Number>,<Number>,<Number>,<Number>] }.
Делаю так:
Получаю:[
null,
null,
null,
....
Подскажите, что делаю не так. Заранее спасибо!
Делаю так:
Массив = Новый Массив;
Массив.Вставить("114973");
Массив.Вставить("114974");
Массив.Вставить("114975");
Массив.Вставить("114976");
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, Массив);
СтрокаJSON = ЗаписьJSON.Закрыть();
ПоказатьПолучаю:[
null,
null,
null,
....
Подскажите, что делаю не так. Заранее спасибо!
По теме из базы знаний
Найденные решения
(19)
Есть еще такой вариант:
Соответственно такой код:
Мне именно массив надо возвращать.
Есть еще такой вариант:
[{"договор1": {"1": 1}},{"договор2": {"2": 2}},{"договор3": {"3": 3}}]
Соответственно такой код:
ИтоговыеДанные = Новый Массив;
Для каждого Договор из JSON Цикл
Детали = Новый Структура;
Детали.Вставить("policy_no",Номер);
Детали.Вставить("insuranced_at",Формат(Дата, "ДФ=dd.MM.yyyy"));
ДанныеДоговоров = Новый Соответствие;
ДанныеДоговоров.Вставить(Договор,Детали);
ИтоговыеДанные.Добавить(ДанныеДоговоров);
КонецЦикла;
ЗаписатьJSON(ЗаписьJSON, ИтоговыеДанные);
СтрокаЗапроса = ЗаписьJSON.Закрыть();
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Спасибо, теперь прочесть не могу(
Ошибка при вызове метода контекста (ПрочитатьJSON)
JSON=ПрочитатьJSON(ЧтениеJSON);
по причине:
Недопустимое состояние потока записи JSON
СтрокаЗапроса = ЗаписьJSON.Закрыть();
ЧтениеJSON=Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(СтрокаЗапроса);
JSON=ПрочитатьJSON(ЧтениеJSON);
Ошибка при вызове метода контекста (ПрочитатьJSON)
JSON=ПрочитатьJSON(ЧтениеJSON);
по причине:
Недопустимое состояние потока записи JSON
Подскажите, как убрать запятую, не понимаю, где она рисуется...
ЗаписьJSON.ЗаписатьНачалоМассива();
Для каждого Договор из JSON Цикл
ЗаписьJSON.ЗаписатьИмяСвойства(Договор);
ЗаписьJSON.ЗаписатьНачалоОбъекта();
ЗаписьJSON.ЗаписатьИмяСвойства("policy_no");
ЗаписьJSON.ЗаписатьЗначение(Номер);
ЗаписьJSON.ЗаписатьИмяСвойства("insuranced_at");
ЗаписьJSON.ЗаписатьЗначение(Формат(Дата, "ДФ=dd.MM.yyyy"));
ЗаписьJSON.ЗаписатьКонецОбъекта();
КонецЦикла;
ЗаписьJSON.ЗаписатьКонецМассива();
СтрокаЗапроса = ЗаписьJSON.Закрыть();
ПоказатьПрикрепленные файлы:
(12) а, эта запятая. не сразу увидел. Да это лишняя.
Где-то что-то не так открываете или закрываете.
Первое ЗаписьJSON.ЗаписатьИмяСвойства(Договор); Там нет открытия и закрытия объекта.
И все это можно сделать через ЗаписьJSON (загрузкой подготовленной коллекции). Зачем формировать вручную?
Где-то что-то не так открываете или закрываете.
Первое ЗаписьJSON.ЗаписатьИмяСвойства(Договор); Там нет открытия и закрытия объекта.
И все это можно сделать через ЗаписьJSON (загрузкой подготовленной коллекции). Зачем формировать вручную?
(17)(16)
Но, если не использовать массив, то вот такой формат:
будет валидным.
И делается просто (в первом приближении на коленке):
Но, если не использовать массив, то вот такой формат:
{"договор1": {"1": 1},"договор2": {"2": 2},"договор3": {"3": 3}}
будет валидным.
И делается просто (в первом приближении на коленке):
ДанныеДоговоров = Новый Соответствие;
Для каждого Договор из JSON Цикл
Детали = Новый Структура;
Детали.Вставить("policy_no",Номер);
Детали.Вставить("insuranced_at",Формат(Дата, "ДФ=dd.MM.yyyy"));
ДанныеДоговоров.Вставить(Договор,Детали);
КонецЦикла;
ЗаписатьJSON(ЗаписьJSON, ДанныеДоговоров);
СтрокаЗапроса = ЗаписьJSON.Закрыть();
Показать
(19)
Есть еще такой вариант:
Соответственно такой код:
Мне именно массив надо возвращать.
Есть еще такой вариант:
[{"договор1": {"1": 1}},{"договор2": {"2": 2}},{"договор3": {"3": 3}}]
Соответственно такой код:
ИтоговыеДанные = Новый Массив;
Для каждого Договор из JSON Цикл
Детали = Новый Структура;
Детали.Вставить("policy_no",Номер);
Детали.Вставить("insuranced_at",Формат(Дата, "ДФ=dd.MM.yyyy"));
ДанныеДоговоров = Новый Соответствие;
ДанныеДоговоров.Вставить(Договор,Детали);
ИтоговыеДанные.Добавить(ДанныеДоговоров);
КонецЦикла;
ЗаписатьJSON(ЗаписьJSON, ИтоговыеДанные);
СтрокаЗапроса = ЗаписьJSON.Закрыть();
Показать
(9) Вот приличный человек в мое бы время просто бы создал текстовую переменную безо всех этих джисонов, сгенерировав текст кодом с конкатенацией строк. Но нет, народ мучается и кушает кактус, теряя десятки часов )))
Не, я не против джисона - тем более тут задача свелась к массиву соответствий и структур и там все примитивно. Но если вдруг затыки, то вспоминайте про простой текст. Тот же XBRL достаточно непросто писать с помощью объектов 1С, а с помощью записи текста - фигня вопрос.
Не, я не против джисона - тем более тут задача свелась к массиву соответствий и структур и там все примитивно. Но если вдруг затыки, то вспоминайте про простой текст. Тот же XBRL достаточно непросто писать с помощью объектов 1С, а с помощью записи текста - фигня вопрос.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот