|
Сортировка в соответствии перед конвертацией в JSON | ☑ | ||
---|---|---|---|---|
0
fantomrik
17.01.18
✎
11:01
|
Коллеги, бодрого дня!
Занимаюсь интеграцией 1С и сайта, необходимо формировать POST запросы в JSON. В виду того, что ключи в теле запроса могут содержать символ "-", использовать Структуру не получится, использую Соответствие. После формирования вложенных структур через соответствия и массивы, перевожу их в JSON типовым функционалом: ЗаписьJSON = Новый ЗаписьJSON; ЗаписьJSON.УстановитьСтроку(); ЗаписатьJSON(ЗаписьJSON, МоеСоответствиеСвойств); СтрокаJSON = ЗаписьJSON.Закрыть(); В чем загвоздка - последовательность ключей в Соответствии произвольное (не зависимо в каком порядке я вставлял их) и соответственно последовательность ключей JSON такая же как в Соответствии. Можно на это как то повлиять или только итоговый JSON парсить как текст и менять последовательность? Пример типового формирования и формата в котором сайт не "съедает" тело запроса { "event-date": "2018-01-17T10:05:53.0690000Z", "origin-id": "XMVTvxVmakeUgS8kZvj1mg==", "properties": { "account-id": "3c9a05bb-d2cf-11e0-b681-0030485579bb", "permissions": [ { "begin-date": "2018-01-16T12:00:00.0800000Z", "end-date": "2018-01-23T12:00:00.0800000Z", "permission-code": "8", "flag": 1 }, { "begin-date": "2018-01-16T12:00:00.0800000Z", "end-date": "2018-01-23T12:00:00.0800000Z", "description": "20", "permission-code": "8.1", "flag": 1 }, { "begin-date": "2018-01-16T12:00:00.0800000Z", "end-date": "2018-01-23T12:00:00.0800000Z", "permission-code": "1", "flag": 1 } ] }, "event-type": "post-xxxxxx", "event-id": "XMVTvxVmakeUgS8kZvj1mg==" } а в таком уже все ок { "event-type": "post-xxxxxx", "event-date": "2018-01-16T08:37:41.2600000Z", "event-id": "XMVTvxVmakeUgS8kZvj1mg==", "origin-id": "XMVTvxVmakeUgS8kZvj1mg==", "properties": { "account-id": "3c9a05bb-d2cf-11e0-b681-0030485579bb", "permissions": [ { "permission-code": "8", "begin-date": "2018-01-15T13:20:16.7960000Z", "end-date": "2018-01-15T13:20:16.7960000Z", "flag": 1 }, { "permission-code": "8.1", "begin-date": "2018-01-15T13:20:16.7960000Z", "end-date": "2018-01-15T13:20:16.7960000Z", "flag": 1, "description": "20" }, { "permission-code": "1", "begin-date": "2018-01-15T13:20:16.7960000Z", "end-date": "2018-01-15T13:20:16.7960000Z", "flag": 1 } ] } } |
|||
1
fantomrik
17.01.18
✎
11:14
|
Наверно все таки вручную только парсер/переформирователь итогового текста JSON писать нужно.
|
|||
2
бомболюк
17.01.18
✎
11:20
|
проще использовать коллекции которые сохраняют порядок например список значений или массив
|
|||
3
fantomrik
17.01.18
✎
11:25
|
(2) Список значений не подойдет в ввиду ограничения типов в ЗаписатьJSON (WriteJSON). А с массивом мысль, сейчас попробую!
|
|||
4
fantomrik
17.01.18
✎
11:37
|
(3) Попробовал за основу взять массив. На первом уровне в массив добавлять соответствие (нам нужен ключ и значение), на втором еще один массив в котором так же соответствия. Ниже проваливаться не стал, посмотрел с 2мя уровнями - уже вроде как неверно формирует
[ { "event-type": "post-XXXXXXX" }, { "event-date": "2018-01-17T11:30:17.4600000Z" }, { "event-id": "XMVTvxVmakeUgS8kZvj1mg==" }, { "origin-id": "XMVTvxVmakeUgS8kZvj1mg==" }, [ { "account-id": "3c9a05bb-d2cf-11e0-b681-0030485579bb" }, { "permissions": "--------------" } ] ] |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |