|
парсинг JSON. Формирование данных на стороне сата | ☑ | ||
---|---|---|---|---|
0
lamme
18.02.19
✎
11:48
|
сайт.
2 скрипта. выдают JSON. 1С к ним обращается. один JSON считывается как тДанные = ПрочитатьJSON(тЧтение, Ложь); второй тДанные = ПрочитатьJSON(тЧтение, ИСТИНА); Разница = во втором параметре <ПрочитатьВСоответствие> (необязательный) Тип: Булево. Если установлено Истина, чтение объекта JSON будет выполнено в Соответствие. Если установлено Ложь, объекты будут считываться в объект типа Структура. Примечание. При десериализации объектов JSON в структуру необходимо помнить о требованиях к ключам структуры. Если при десериализации объекта будет найдено имя свойства, недопустимое для ключа структуры, то будет вызвано исключение. если второй JSON читать как тДанные = ПрочитатьJSON(тЧтение, Ложь); то выходит ошибка Ошибка при вызове метода контекста (ПрочитатьJSON): Недопустимое имя свойства: '1' для чтения JSON в объект Структура Вопрос что не так формирует сайт ? надо чтобы было чтение JSON с параметром тДанные = ПрочитатьJSON(тЧтение, Ложь); |
|||
1
lamme
18.02.19
✎
11:48
|
как правильно объяснить программерам сайта - что не так ?
|
|||
2
VladZ
18.02.19
✎
11:50
|
Недопустимое имя свойства: '1' - не может быть цифрой.
|
|||
3
Василий Алибабаевич
18.02.19
✎
11:51
|
(0) что не так формирует сайт ?
Еще бы посмотреть как же именно формирует сайт. Ну хотя бы фрагмент с ошибкой. Тот, где свойство = "1". |
|||
4
VladZ
18.02.19
✎
11:52
|
Я такие "фичи" сам обрабатываю:
Функция ОткорректироватьОтветОтСервере(ОтветОтСервера, ЗаменятьНаРеквизит = "ID") ВыхСтрока = ""; Для сч = 1 по СтрЧислоСтрок(ОтветОтСервера) Цикл // смотрим, что в конце: СтрокаДляКорректировки = СтрПолучитьСтроку(ОтветОтСервера,сч); НачалоНайденнойСтроки = СтрНайти(СтрокаДляКорректировки, " : {"); Если НачалоНайденнойСтроки > 0 Тогда // если число - корректируем СимволПеред = Сред(СтрокаДляКорректировки,НачалоНайденнойСтроки-2,1); Если СимволПеред >= "0" и СимволПеред <="9" Тогда // преобразуем строку. НужныйНомер = СокрЛП(Сред(СтрокаДляКорректировки,1,НачалоНайденнойСтроки-2)); НужныйНомер = СтрЗаменить(НужныйНомер,"""", ""); СтрокаДляКорректировки = """" + ЗаменятьНаРеквизит + "_" + НужныйНомер + """" + " : {"; СтрокаДляКорректировки = СтрокаДляКорректировки + Символы.ВК + """" + ЗаменятьНаРеквизит + """" + ":" + """" + НужныйНомер + """" + ","; КонецЕсли; КонецЕсли; ВыхСтрока = ВыхСтрока + Символы.ВК + СтрокаДляКорректировки; КонецЦикла; Возврат ВыхСтрока; КонецФункции // ОткорректироватьОтветОтСервере |
|||
5
lamme
18.02.19
✎
11:56
|
вот ответ от проблемного скрипта
{"status":"success","delivery":[{"id":"92541","date":"14.02.2019 17:12:53","account":{"1":{"id":"6dcd54ec-1e0b-11e8-8166-00155d019702","name |
|||
6
VladZ
18.02.19
✎
11:58
|
Вот тут проблема: "1":{
1С не умеет такое парсить. |
|||
7
lamme
18.02.19
✎
11:59
|
вот нормальное
{"status":"success","orders":[{"order":{"order_id":"7104","id":"","date_insert":1550478173,"number":"7104","comment":"","oneclick":false,"p |
|||
8
lamme
18.02.19
✎
12:00
|
(6)
не уловил ... |
|||
9
Василий Алибабаевич
18.02.19
✎
12:00
|
(5) Вот жеШ оно :
"account":{"1":{"id" |
|||
10
Вафель
18.02.19
✎
12:00
|
(8) а ты вообще кто?
|
|||
11
lamme
18.02.19
✎
12:01
|
(9)
так а что тут надо было ? |
|||
12
lamme
18.02.19
✎
12:02
|
(9)
а как правильно тогда ? |
|||
13
Василий Алибабаевич
18.02.19
✎
12:03
|
(12) Ну хотя бы вместо
"account":{"1":{"id" например "account":{"n1":{"id" |
|||
14
lamme
18.02.19
✎
12:07
|
передал программистам сайта.. пробуем
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |