|
Выгрузка из 1с в JSON | ☑ | ||
---|---|---|---|---|
0
ALEX7519
29.09.22
✎
19:56
|
Такой вопрос : поставили задачу выгрузить некие данные в JSON , структуру файла дали .
Могу я просто создать текстовый файл, подобавлять в него строки типа "col01": 23.45, "col02": 34.5, в начале и конеце поставить [] } ... и сохранить все это с расширением JSON ? это и будет в принципе файл JSON ? или надо заморачиваться со специальными командами и т.п ? ( структура файла известна, кол-во полей (строк) в нем ограничено ) |
|||
1
Kassern
29.09.22
✎
19:59
|
(0) Лучше создать нужную структуру и воткнуть ее в ЗаписатьJSON. Не будет проблем с косячными скобками и прочим
|
|||
2
НафНаф
29.09.22
✎
20:02
|
(0) почему не хочешь нормально JSON строку создать?
|
|||
3
ALEX7519
29.09.22
✎
20:05
|
(1) т е например можно сделать таблицу значений у которой названия колонок будут ключи "col01" например, а в первой строчке значения и ЗаписатьJSON выдаст что то типа этого ?
[ { "col01": 23.45, "col02": 34.5 } ] |
|||
4
ALEX7519
29.09.22
✎
20:05
|
(2) потому что пока хз что это такое )
|
|||
5
ALEX7519
29.09.22
✎
20:08
|
и еще вопрос - чтовы вот такое получилось уже таблица значений не подойдет ? а тут какую структуру делать ?
"row01": { "col01": 23.45, "col02": 34.5, "col03": 34, "col04": 45 }, "row02": { "col01": 45, "col03": 34 }, "row03": { "col02": 23, "col04": 45 }, |
|||
6
withoutname
29.09.22
✎
20:13
|
(4) в Синтакс-Помощнике(СП) забей JSON )
|
|||
7
Garykom
гуру
29.09.22
✎
20:14
|
(0) Можно но не нужно, если у тебя не 1С 7.7
В 1С 8 есть прекрасные средства работы с JSON Тупо структуру заполни и сохрани https://wonderland.v8.1c.ru/blog/sredstva-raboty-s-json/ |
|||
8
Garykom
гуру
29.09.22
✎
20:17
|
(3) Это массив из структур
(5) Это структуры в структуре Если имена полей не подходят под Структура то Соответствие |
|||
9
Kassern
29.09.22
✎
20:57
|
(5) {} - объект (в 1с структура)
[] - массив объектов. Вот и все что нужно знать по JSON) |
|||
10
rudnitskij
29.09.22
✎
22:46
|
(0) МассивСтруктур = ОбщегоНазначения.ТаблицаЗначенийВМассив(ТвояТаблицаЗначений);
ЗаписьДЖСОН = Новый ЗаписьJSON; ЗаписьДЖСОН.УстановитьСтроку(); ЗначениеНаЗапись = Неопределено; Попытка ЗаписьДЖСОН.ЗаписатьНачалоМассива(); Для Каждого Структ Из МассивСтруктур Цикл ЗаписьДЖСОН.ЗаписатьНачалоОбъекта(); Для Каждого Элемент Из Структ Цикл ЗаписьДЖСОН.ЗаписатьИмяСвойства(Элемент.Ключ); ЗначениеНаЗапись = Элемент.Значение; Если ТипЗнч(Элемент.Значение) = Тип("Дата") Тогда ЗначениеНаЗапись = Формат(Элемент.Значение, "ДФ=yyyy-MM-dd"); ИначеЕсли Не (ТипЗнч(Элемент.Значение) = Тип("Строка") Или ТипЗнч(Элемент.Значение) = Тип("Число") Или ТипЗнч(Элемент.Значение) = Тип("Булево")) Тогда ЗначениеНаЗапись = СокрЛП(Строка(Элемент.Значение)); КонецЕсли; ЗаписьДЖСОН.ЗаписатьЗначение(ЗначениеНаЗапись); КонецЦикла; ЗаписьДЖСОН.ЗаписатьКонецОбъекта(); КонецЦикла; ЗаписьДЖСОН.ЗаписатьКонецМассива(); Исключение // обработка исключения КонецПопытки; Возврат ЗаписьДЖСОН.Закрыть(); ----------------------------------------------- Тебе повезло, как раз сегодня была у меня задача по формированию json из таблицы значений) вот готовый код, который практически из любой ТЗ формирует строку json |
|||
11
Garykom
гуру
29.09.22
✎
23:10
|
(10) может уже подучить сериализацию json в 1С?
ибо нахрена вручную то писать но уже хорошо что не через строки )) |
|||
12
OldCondom
30.09.22
✎
03:46
|
Я пару дней назад купил книжку 1с, кажется "Технологии интеграции" Хрусталевой. Понял, насколько был туп и убог в json, веб сервисах, обменахи т.д.
Там для json пару глав по паре страниц отведено, полистай и в голове все сложится. И такого ужаса как в (10) не будет. Книжка на итс кстати есть. |
|||
13
AneJIbcuH
30.09.22
✎
08:08
|
(10) чувак, всё проще делается...
|
|||
14
AneJIbcuH
30.09.22
✎
08:09
|
(13) + 8.3.23 ещё проще будет
https://wonderland.v8.1c.ru/blog/uluchshenie-raboty-s-json/ |
|||
15
НафНаф
30.09.22
✎
08:18
|
(9) структура или соответствие
|
|||
16
rudnitskij
30.09.22
✎
09:18
|
(11) Результат "сериализации" получателю не подходит. А при попытке записать дату в лоб сама 1С просто выкидывает с ошибкой.
А так мы все всё выучили, да... |
|||
17
rudnitskij
30.09.22
✎
09:21
|
(11) (12) (13) (14) Ребят, вы думаете, у меня нет гугла и я не могу это всё найти без вашей помощи?) Кстати, подкиньте мне ссылочку, где описано, какой параметр указать для сериализатора, чтоб из представлений ссылочных объектов убирал лишние пробелы - раз у вас гугл лучше работает, чем у меня
|
|||
18
Kassern
30.09.22
✎
11:13
|
(17) Вы про XmlСтрока()?
|
|||
19
Garykom
гуру
30.09.22
✎
12:10
|
(17) да думаю нет
потому что XMLСтрока() и (16) дату сам в строку преобразуй как надо или ФорматДатыJSON |
|||
20
ДедМорроз
02.10.22
✎
12:34
|
Начнем с того,что в json дат нету.
То есть,для самого формата это строка и тут надо смотреть,как ее на той стороне читают,чтобы не было ошибок. |
|||
21
Sj
03.10.22
✎
01:53
|
(5)
М = новый массив; М.Добавить( новый структура ("row1", новый структура("col1, col2",1,2) |
|||
22
Skylark
03.10.22
✎
10:03
|
(20) ЗаписатьJSON(<ЗаписьJSON>, <Значение>, <НастройкиСериализации>, <ИмяФункцииПреобразования>, <МодульФункцииПреобразования>, <ДополнительныеПараметрыФункцииПреобразования>)
Курим последние три параметра и ищем пример в типовых конфах. Вот в ЗУП например НастройкиСериализацииJSON = Новый НастройкиСериализацииJSON; НастройкиСериализацииJSON.ВариантЗаписиДаты = ВариантЗаписиДатыJSON.ЛокальнаяДата; НастройкиСериализацииJSON.ФорматСериализацииДаты = ФорматДатыJSON.ISO; ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON( ,Символы.Таб)); ЗаписатьJSON(ЗаписьJSON, Значение, НастройкиСериализацииJSON, "ПреобразованиеJSON", ОбщегоНазначения.ОбщийМодуль("КабинетСотрудника")); Результат = ЗаписьJSON.Закрыть(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |