![]() |
![]() |
![]() |
|
v7: Json в 1С 7.7 | ☑ | ||
---|---|---|---|---|
0
zenon46
09.09.25
✎
18:56
|
Господа доброго времени суток!
Давно использую класс КОП_JSON от господина trad. До этого делал простенькие файлы для обмена, тут понадобилось сделать файл чуть сложнее, что-то не получается. Может кто тоже юзает этот класс, посдкажет. Структура, примерно такая. { "set_code": "001", "items": [ { "marketplace": "W", "article": 1223423, "article_post": "3243243", "barcode": 3242354435 } { "marketplace": "O", "article": 234324324, "article_post": "КОД-Н2", "barcode": 3243234 } ] "set_code": "002", "items": [ { "marketplace": "W", "article": 1223423, "article_post": "3243243", "barcode": 3242354435 } { "marketplace": "O", "article": 234324324, "article_post": "КОД-Н2", "barcode": 3243234 } ] } |
|||
1
Джордж1
09.09.25
✎
20:31
|
Если интересно - работаю c JSON без всяких классов
|
|||
2
АгентБезопасной Нацио
09.09.25
✎
20:36
|
(0) ошибка в примере.
|
|||
3
trad
09.09.25
✎
20:44
|
Для начала приведи корректный json, который хочешь получить, а не примерный
|
|||
4
MWWRuza
гуру
09.09.25
✎
20:54
|
Ну, я бы не сказал, что такая уж и ошибка...
Нотепад++ с плагином JSON форматирует его... Лишние пустые строки? Или еще что-то? ![]() Надо будет попробовать распарсить его своими обработками из конфы... PS А вообще, да, внимательнее посмотрел, странный он какой-то... Внутри квадратных скобок фигурные... Или я опять не на то смотрю? |
|||
5
АгентБезопасной Нацио
09.09.25
✎
20:57
|
(4) Это должен быть либо массив структур (с ключами set_code и items), либо ключи должны быть различными.
Вообще, нет никаких причин не сделать сборку строки хоть из спискаЗначений, Хоть из ТЗ, хоть из Структуры или ИТЗ (1с++). Рекурсией удобнее, без рекурсии лениво придумывать. |
|||
6
MWWRuza
гуру
09.09.25
✎
21:15
|
Ага, не разбирает его мой парсер:
![]() |
|||
7
MWWRuza
гуру
09.09.25
✎
21:39
|
Весь делать лень, вот кусочек через СЗ:
![]() Процедура СобратьJSON() СЗ = СоздатьОбъект("СписокЗначений"); СзИт = СоздатьОбъект("СписокЗначений"); СзИт.ДобавитьЗначение("W"); СзИт.ДобавитьЗначение(1223423); СзИт.ДобавитьЗначение("3243243"); СзИт.ДобавитьЗначение(3242354435); СЗ.ДобавитьЗначение("001", "set_code"); СЗ.ДобавитьЗначение(СзИт, "items"); JSON = ЗначениеВJSON(СЗ); КонецПроцедуры |
|||
8
MWWRuza
гуру
09.09.25
✎
21:54
|
Добавил немного:
![]() Процедура СобратьJSON() СЗ = СоздатьОбъект("СписокЗначений"); СзИт = СоздатьОбъект("СписокЗначений"); СзИт2 = СоздатьОбъект("СписокЗначений"); СзИтБезИД = СоздатьОбъект("СписокЗначений"); СзИт.ДобавитьЗначение("W", "marketplace"); СзИт.ДобавитьЗначение(1223423, "article"); СзИт.ДобавитьЗначение("3243243", "article_post"); СзИт.ДобавитьЗначение(3242354435, "barcode"); СзИт2.ДобавитьЗначение("O", "marketplace"); СзИт2.ДобавитьЗначение(234324324, "article"); СзИт2.ДобавитьЗначение("КОД-Н2", "article_post"); СзИт2.ДобавитьЗначение(3243234, "barcode"); СзИтБезИД.ДобавитьЗначение(СзИт); СзИтБезИД.ДобавитьЗначение(СзИт2); СЗ.ДобавитьЗначение("001", "set_code"); СЗ.ДобавитьЗначение(СзИтБезИД, "items"); JSON = ЗначениеВJSON(СЗ); КонецПроцедуры |
|||
9
MWWRuza
гуру
09.09.25
✎
22:13
|
Добавил еще пару строчек перед передачей списка в функцию:
СЗ.ДобавитьЗначение("002", "set_code"); СЗ.ДобавитьЗначение(СзИтБезИД, "items"); На выходе: ![]() Как-то так... В (0) нескольких запятых не хватает, а в целом, имеет право на жизнь, ИМХО... |
|||
10
Злопчинский
09.09.25
✎
22:23
|
А где сам собственно
ЗначениеВJSON(СЗ) |
|||
11
MWWRuza
гуру
09.09.25
✎
22:39
|
(10) А я ему давал текстовик с функциями ГМ :-)))
Тебе нужно? Могу и тебе отправить, просто там довольно громоздкие функции, на JS, и тут их выкладывать как-то не охота :-) Они все есть на ИнфоСтарте, у меня они-же, с минимальными моими доработками. Но, ему они скорее всего не подойдут, там требования сотни мегабайт... Нужно переделывать на поток или использовать еще что-то, так, как в том виде, в каком они у меня работают - 500+ кБ, потолок... Дальше, 1С крашится :-( Мне - хватает с избытком... А парсинг больших JSON файлов, я делаю через 1csqllite от Djelf... Тоже кстати, очень не плохо работает, быстро, и без ограничений по объему, но на выходе не дерево из СЗ, а по сути плоская ТЗ, что не так удобно... Но, я приспособился, первичный разбор большого JSON делаю 1csqllite, а вложенные списки уже этой своей привычной парсю. Так и не падает, и быстро и удобно. |
|||
12
Злопчинский
09.09.25
✎
22:50
|
я отсюда взял (3 недели назад)
https://infostart.ru/1c/articles/960486/ |
|||
13
Злопчинский
09.09.25
✎
22:51
|
(11) скидавай
|
|||
14
MWWRuza
гуру
10.09.25
✎
08:07
|
(13) На почте из профиля
|
|||
15
MWWRuza
гуру
10.09.25
✎
11:56
|
(9) нескольких запятых не хватает, а в целом, имеет право на жизнь, ИМХО...
Кстати, посмотрел сейчас JSON который ТС мне на ВатСап присылал - там все запятые на месте. Это "кривой" тут, в оригинале все верно. |
|||
16
Злопчинский
10.09.25
✎
14:14
|
(14) не, лучше в мессенджерах или на e.meil@mail.ru
|
|||
17
MWWRuza
гуру
10.09.25
✎
15:10
|
(16) Так я туда и отправил. Она у тебя в профиле и есть.
А месенджеров твоих у меня нет сейчас... В старо-давние времена, были скайп и вроде аська(?), сейчас их прибили, есть ВатСап и телега, но там мы с тобой ни разу не состукивались, и у меня твоих контактов в них нет... |
|||
18
Злопчинский
11.09.25
✎
02:24
|
(17) получил в телеге, спсб
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |