|
Чтение json. Проблема | ☑ | ||
---|---|---|---|---|
0
progaoff
17.04.23
✎
12:25
|
Добрый день, ребят, столкнулся с проблемой чтения json файла.
Есть хттп сервис, получает запросы, пишет в временный файл тело запроса. Потом его читает. ТелоЗапроса = Запрос.ПолучитьТелоКакСтроку(); ИмяВремянки = ПолучитьИмяВременногоФайла(); ТекстовыйФайл = Новый ТекстовыйДокумент; ТекстовыйФайл.УстановитьТекст(ТелоЗапроса); ТекстовыйФайл.Записать(ИмяВремянки); ФайлJSON = Новый Файл(ИмяВремянки); ЧтениеJSON = Новый ЧтениеJSON; ЧтениеJSON.ОткрытьФайл(ИмяВремянки); СтруктураФайла = ПрочитатьJSON(ЧтениеJSON,,"ShipmentDate"); В один прекрасный день, вся эта конструкция отвалилась, причем тело json не менялось. Ошибка при вызове метода контекста (ПрочитатьJSON)] Помогите пожалуйста разобратся. |
|||
1
ChMikle
17.04.23
✎
12:26
|
(0) удалили функцию прочитатьJson() ?
|
|||
2
progaoff
17.04.23
✎
12:27
|
(1) Нет))
|
|||
3
Волшебник
17.04.23
✎
12:28
|
кодировка?
формат? какой текст ошибки? |
|||
4
ChMikle
17.04.23
✎
12:28
|
(2) >>Ошибка при вызове метода контекста (ПрочитатьJSON)]
отладчик что говорит ? |
|||
5
Гипервизор
17.04.23
✎
12:28
|
(0) Попробуйте прочитать в соответствие: ПрочитатьJSON(ЧтениеJSON, Истина,"ShipmentDate").
|
|||
6
progaoff
17.04.23
✎
12:29
|
(5) Ошибка при вызове метода контекста (ПрочитатьJSON) не помогает
|
|||
7
Волшебник
17.04.23
✎
12:29
|
покажите файл
|
|||
8
Garykom
17.04.23
✎
12:31
|
(0) Хотя бы полностью ошибку напиши
|
|||
9
progaoff
17.04.23
✎
12:32
|
ERP/hs/RefDoc/create/ЦБ00001/422
{ "Code": "1111111", "Byer": "22222222", "DocumentCode": "--", "ShipmentDate": "2023-04-01T00:00:00", "Rows": [ { "RowNumber": 1, "Code": "33333", "Quantity": 2, "Price": 66666, "GTD": "1111111/111111/11111", "CountryCode": "20", "SumWithoutNDS": 1, "SumNDS": 1, "SumWithNDS": 1 } ] } |
|||
10
progaoff
17.04.23
✎
12:32
|
(8) Ошибка при вызове метода контекста (ПрочитатьJSON) больше инфы нет.
|
|||
11
Волшебник
17.04.23
✎
12:34
|
(9) файл нормальный
|
|||
12
progaoff
17.04.23
✎
12:35
|
(11) Ну как бы да, отвалилось причем без всяких на то причин, типа обновлений и прочего не было
|
|||
13
Garykom
17.04.23
✎
12:37
|
(10) так не бывает
дальше должно быть подробности почему |
|||
14
ChMikle
17.04.23
✎
12:37
|
(12) может где еще определили эту функцию в модуле ?
|
|||
15
progaoff
17.04.23
✎
12:38
|
Ну вот ТелоЗапроса = Запрос.ПолучитьТелоКакСтроку() - возвращает ERP/hs/RefDoc/create/ЦБ00001/422 и все
|
|||
16
ChMikle
17.04.23
✎
12:39
|
Страшная аббревиатура ERP, в ней все проблемы :)
|
|||
17
Garykom
17.04.23
✎
12:40
|
(13)+ ты только первую строку ошибки написал
напиши что дальше в ошибке |
|||
18
Гипервизор
17.04.23
✎
12:40
|
(15) Так вам надо только то, что в {}.
|
|||
19
Волшебник
17.04.23
✎
12:42
|
(15) эту строку надо убрать. JSON - это то, что внутри фигурных скобок
|
|||
20
Волшебник
17.04.23
✎
12:43
|
кстати, пишется "Buyer", а не "Byer"
|
|||
21
progaoff
17.04.23
✎
12:45
|
(19) Так раньше с ней читало нормально.
|
|||
22
progaoff
17.04.23
✎
12:46
|
Ошибка при вызове метода контекста (ПрочитатьJSON): Непредвиденный символ при чтении JSON
В попытку обернул. |
|||
23
Волшебник
17.04.23
✎
12:47
|
(21) Сомневаюсь
|
|||
24
OldCondom
17.04.23
✎
12:47
|
Пообщайся с тем, кто отправляет запрос
|
|||
25
Волшебник
17.04.23
✎
12:48
|
(22) Уберите первую строку. Объект JSON начинается и заканчивается фигурными скобками {}
|
|||
26
Garykom
17.04.23
✎
12:48
|
(22) Вот теперь ты уже ближе...
"Непредвиденный символ при чтении JSON" |
|||
27
OldCondom
17.04.23
✎
12:48
|
http://json.parser.online.fr/ - пихни туда свой json и увидишь ту же самую ошибку.
Это не json |
|||
28
Garykom
17.04.23
✎
12:50
|
(22) >В попытку обернул.
достаточно было в режиме предприятия при ошибке нажать на подробнее и там посмотреть |
|||
29
progaoff
17.04.23
✎
12:58
|
Ну упорно говорит о том что данная строка была и проблем не было (24)
|
|||
30
Garykom
17.04.23
✎
13:00
|
(29) кто то врет
|
|||
31
progaoff
17.04.23
✎
13:01
|
(30) не в моих интересах это уж точно.
|
|||
32
Волшебник
17.04.23
✎
13:07
|
если "тело" содержит строку: ERP{"Code": "1111111"}", то найдите первую фигурную скобку и отсчитывайте от неё:
json = Сред(тело, СтрНайти(тело,"{")); |
|||
33
progaoff
17.04.23
✎
13:15
|
(32) Ну судя по упертости с той стороны, так и прийдется делать
|
|||
34
progaoff
17.04.23
✎
13:16
|
(32) Спасибо!
|
|||
35
progaoff
17.04.23
✎
13:21
|
(32) ПолучитьТелоКакСтроку - только эту строку и возвращает. Больше ничего нет
|
|||
36
Гипервизор
17.04.23
✎
13:25
|
(35) В смысле возвращает только "ERP/hs/RefDoc/create/ЦБ00001/422" и всё? А остальное откуда?
|
|||
37
progaoff
17.04.23
✎
13:30
|
(36) Да, больше нет ничего.
|
|||
38
progaoff
17.04.23
✎
13:32
|
Если бы я хотя бы все тело видел, другой разговор. А так из ничего сделать что то, непонятно
|
|||
39
OldCondom
17.04.23
✎
13:34
|
забавно
|
|||
40
Гипервизор
17.04.23
✎
13:36
|
(37) А тогда откуда взялся текст в (9)?
|
|||
41
progaoff
17.04.23
✎
13:37
|
(40) Прислали с той стороны
|
|||
42
программистище
17.04.23
✎
13:46
|
УстановитьТелоИзСтроки(СокрЛП(СтрокаJSON),КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать), может те кто отправляют json что-то поменяли?
третий параметр до 8.3 был по умолчанию использовать, в 8.3 не использовать и в старых базах приходилось указывать ИспользованиеByteOrderMark.НеИспользовать хотя в 1с он игнорирует вроде BOM но может поможет |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |