|
Форматирование JSON | ☑ | ||
---|---|---|---|---|
0
MetalZOne
21.12.16
✎
16:35
|
Вот код, которым формирую JSON:
ВыборкаНоменклатуры = ЗапросНоменклатура.Выполнить().Выбрать(); ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(,Символы.Таб); ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON); ЗаписьJSON.ЗаписатьНачалоОбъекта(); Пока ВыборкаНоменклатуры.Следующий() Цикл ЗаписьJSON.ЗаписатьНачалоОбъекта(); ЗаписьJSON.ЗаписатьИмяСвойства("Товар"); ЗаписьJSON.ЗаписатьЗначение(""+ВыборкаНоменклатуры.Ссылка.УникальныйИдентификатор()+""); ЗаписьJSON.ЗаписатьНачалоМассива(); ЗаписьJSON.ЗаписатьИмяСвойства("ЭтоГруппа"); ЗаписьJSON.ЗаписатьЗначение(ВыборкаНоменклатуры.СсылкаЭтоГруппа); ЗаписьJSON.ЗаписатьИмяСвойства("Наименование"); ЗаписьJSON.ЗаписатьЗначение(ВыборкаНоменклатуры.Ссылка.Наименование); ЗаписьJSON.ЗаписатьИмяСвойства("РодительИД"); ЗаписьJSON.ЗаписатьЗначение(""+ВыборкаНоменклатуры.СсылкаРодитель.УникальныйИдентификатор()+""); ЗаписьJSON.ЗаписатьКонецМассива(); ЗаписьJSON.ЗаписатьКонецОбъекта(); КонецЦикла; ЗаписьJSON.ЗаписатьКонецОбъекта(); Данные = ЗаписьJSON.Закрыть(); В результате получаю такое форматирование: { { "Товар": "0e593c94-863d-11e2-8240-005056c00008", [, "ЭтоГруппа": false, "Наименование": "Электроэнергия", "РодительИД": "e8a71fc6-55bc-11d9-848a-00112f43529a" ] }, {, "Товар": , "acd17b71-8666-11e2-8240-005056c00008", [, "ЭтоГруппа": , true, "Наименование": , "Расходные материалы", "РодительИД": , "00000000-0000-0000-0000-000000000000" ] }...... ...... Почему после первой итерации форматирование сбивается? |
|||
1
Cool_Profi
21.12.16
✎
16:38
|
А зачем тебе в машинно-читаемом файле какое-то форматирование?
|
|||
2
MetalZOne
21.12.16
✎
16:39
|
(1) потому что я не знаю как его будут читать, библиотекой или ручками перебирать строки....
|
|||
3
Cool_Profi
21.12.16
✎
16:39
|
(2) Ручками перебирать файл, предназначенный для программной обработки?
|
|||
4
Вафель
21.12.16
✎
18:14
|
вместо таба сделай 4 пробела или 2
|
|||
5
Помогите
21.12.16
✎
20:42
|
(0) Если все равно ты все свойства и значения записываешь в цикле отдельными командами, а не сразу готовой структурой, то лучше записывай их в файл просто текстом, не используй "ЗаписьJSON". Объект ЗаписьJSON не для этого предназначен.
И вообще не логично отдельными командами писать ИмяСвойства и Значение. |
|||
6
Помогите
21.12.16
✎
20:44
|
(0) И еще, почему в цикле ты записываешь объекты в объект, а не в массив?
|
|||
7
GedKo
21.12.16
✎
21:06
|
млин, зачем париться с форматированием для пользователя? может пользователю дать удобный инстумент для просмотра такого файла?
|
|||
8
Помогите
21.12.16
✎
22:06
|
(7) Он не знает как его будут читать. Видимо пользователи чужие, и ничего им дать нельзя.
|
|||
9
PLUT
21.12.16
✎
22:20
|
||||
10
Garykom
гуру
21.12.16
✎
22:28
|
(0) Сбивается потому что кто то вместо валидного JSON какую то х создает
Вот это
что? В массив это упорядоченный список чего то (объектов к примеру) а не свойств именованных. Правильнее
|
|||
11
Помогите
21.12.16
✎
22:28
|
(9) Ты это мне написал?
|
|||
12
alexhtn
21.12.16
✎
23:32
|
(0) На мой взгляд, сформированный файл выглядит немного нелогично.
Попробуй перед вызовом ЗаписьJSON.ЗаписатьНачалоМассива() добавить ЗаписьJSON.ЗаписатьИмяСвойства("Реквизиты") Либо более правильный вариант: ЗаписьJSON.ЗаписатьНачалоМассива(); Пока ВыборкаНоменклатуры.Следующий() Цикл ЗаписьJSON.ЗаписатьНачалоОбъекта(); ЗаписьJSON.ЗаписатьИмяСвойства("Товар"); ЗаписьJSON.ЗаписатьЗначение(""+ВыборкаНоменклатуры.Ссылка.УникальныйИдентификатор()+""); ЗаписьJSON.ЗаписатьИмяСвойства("ЭтоГруппа"); ЗаписьJSON.ЗаписатьЗначение(ВыборкаНоменклатуры.СсылкаЭтоГруппа); ЗаписьJSON.ЗаписатьИмяСвойства("Наименование"); ЗаписьJSON.ЗаписатьЗначение(ВыборкаНоменклатуры.Ссылка.Наименование); ЗаписьJSON.ЗаписатьИмяСвойства("РодительИД"); ЗаписьJSON.ЗаписатьЗначение(""+ВыборкаНоменклатуры.СсылкаРодитель.УникальныйИдентификатор()+""); ЗаписьJSON.ЗаписатьКонецОбъекта(); КонецЦикла; ЗаписьJSON.ЗаписатьКонецМассива(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |