v7: Передача JSON в API, в BOXBERY. У кого каким образом получалось? #802733


#0 by Владимир1С
Сообщение, собственно, в теме. Загвоздка , в данный момент, в передаче массива массивов, то есть в передаче спецификации(табличной части). Каким образом что там объявлять?
#1 by Владимир1С
Поддержка от боксберри тупо написала, что мне нужно учить JSON, и пока от неё внятного ответа добиться не удалось. Может быть, кто нибудь здесь уже решал подобную задачу?
#2 by Sserj
Ну собственно правильно же написали - учить JSON. :) Это же обычный текстовый файлик. Бери форматируй и посылай.
#3 by v77
да вы все сговорились
#4 by Владимир1С
Форматирую и посылаю. В ответ получаю одну общую фразу: "  Ошибка входящих данных. Не удалось преобразовать JSON строку обратно в массив." Никаких подробностей, в каком поле ошибка, ничего. и как его понять?
#5 by Numerus Mikhail
вы уверены, что формируете правильно?
#6 by Владимир1С
Видимо нет, но понять где не так, сервер мне не даёт. Поэтому, собственно, я и здесь.
#7 by Владимир1С
Пишу я на 7.7, если что. не на 8.х
#8 by v77
ну так показывай свой JSON уже
#9 by Владимир1С
{     "fio" : "Мизерак Иван Иосифович", }
#10 by Sserj
Ну сразу в глаза бросается - массивы не фигруными скобками а квадратными обрамляются.
#11 by Владимир1С
: расшифровка, присланная поддержкой Боксберри: Образец массива на PHP: $SDATA=array; $SDATA['updateByTrack']='Трекинг-код ранее созданной посылки'; $SDATA['order_id']='ID заказа в ИМ';                     'weight'=>'Вес 1-ого места',                     'barcode'=>'Баркод 1-го места',                     'weight2'=>'Вес 2-ого места',                     'barcode2'=>'Баркод 2-го места',                     'weight3'=>'Вес 3-его места',                     'barcode3'=>'Баркод 3-го места',                     'weight4'=>'Вес 4-ого места',                     'barcode4'=>'Баркод 4-го места',                     'weight5'=>'Вес 5-ого места',                     'barcode5'=>'Баркод 5-го места'                 ); В JSON будет иметь вид: { "updateByTrack":"Трекинг-код ранее созданной посылки", "order_id":"ID заказа в ИМ", "PalletNumber":"Номер палеты", "weights":{     "weight":"Вес 1-ого места",     "barcode":"Баркод 1-го места",     "weight2":"Вес 2-ого места",     "barcode2":"Баркод 2-го места",     "weight3":"Вес 3-его места",     "barcode3":"Баркод 3-го места",     "weight4":"Вес 4-ого места",     "barcode4":"Баркод 4-го места",     "weight5":"Вес 5-ого места",     "barcode5":"Баркод 5-го места"     } }
#12 by Владимир1С
Скобки фигурные.
#13 by spock
Учи JSON:
#14 by Владимир1С
- а как же тогда имена полей-элементов массива JSON ? Разве квадратные скобки предполагают наличие имён?
#15 by spock
Скорее всего должно быть так: "weights":[     {"weight":"Вес 1-ого места", "barcode":"Баркод 1-го места"},     {"weight":"Вес 2-ого места", "barcode":"Баркод 2-го места"},     {"weight":"Вес 3-его места", "barcode":"Баркод 3-го места"},     {"weight":"Вес 4-ого места", "barcode":"Баркод 4-го места"},     {"weight":"Вес 5-ого места", "barcode":"Баркод 5-го места"} ]
#16 by Sserj
Да нет, но ты в 0 написал - передача массива массивов. Поэтому и ищу у тебя []. А теперь уточняется что это не массивы а наборы объектов передаются.
#17 by Владимир1С
С чего бы? Поддержка прислала "weights":{     "weight":"Вес 1-ого места",     "barcode":"Баркод 1-го места",     "weight2":"Вес 2-ого места",     "barcode2":"Баркод 2-го места",     "weight3":"Вес 3-его места",     "barcode3":"Баркод 3-го места",     "weight4":"Вес 4-ого места",     "barcode4":"Баркод 4-го места",     "weight5":"Вес 5-ого места",     "barcode5":"Баркод 5-го места"     }
#18 by Владимир1С
А как понимать вот это: ? Регина Галимова Добрый день array( ) Эквивалент:      "0" => array(                         'id'=>'Артикул товара в БД',      ), )
#19 by Владимир1С
По схеме  "items":{"0":{ .....},"1":{......}  }   ?
#20 by Владимир1С
Может быть, здесь есть кто нибудь, кто работал с JSON c Boxberry?
#21 by Numerus Mikhail
Вообще странно тогда, ваш JSON выглядит вполне рабочим. Да и парсеры его нормально съедают. Возможно вы просто не посылаете те поля, которые нужны другой стороне?
#22 by Владимир1С
Так... Версию об отсутствии необходимых полей мы сейчас проверим.
#23 by v77
мож число в ковычки записать?     "weight" : 0.466,
#24 by v77
а то чота половина в ковычках половина нет
#25 by Владимир1С
В кавычках было всё. Ответ - с ошибкой.
#26 by Бубр
ты бы для начала запрос  свой к серваку потестил   в строке браузера...  а дальше уже бы и код  написал
#27 by Бубр
к Wialon  подключался.
#28 by Бубр
json  это  структуры  пар  ключ:значение
#29 by PLUT
проверяй свой "жейсон" в отладчике браузера гугл хрома на валидность (кнопка F12), закладка Concole и копипаста твоего сформированного текста в 1С7.7
#30 by d4rkmesa
Может, вам стоит накидать в 8.3 "рыбу" обработки, формирующую валидный тестовый файл (заполнение через объект Записьjson много времени не займет) и сравнить с тем, что у вас получается в 7ке?
#31 by dmitryds
попросите пример валидного файла... мне кажется в items дело items:[ {         "id" : "8060",         "name" : "варежки жен 8060 OCEAN",         "name" : "шапка муж 2035 MIDNIGHT",         "name" : "Кошелек Mano 20100 SETRU dark blue, Размер: 2.5 * 10 * 18.5 см, цвет: темно-синий", ]
#32 by dmitryds
+ weights - правильно, если именованный массив({"a":"1","b":"2"}), то только в {}, если обычный массив [0,1,2,3, {"2":3},{"f":"22"}]  тогда в [] еще стоит проверить, что бы в начале файла не было символов до {
#33 by Владимир1С
Разобрались.   Надо было вот так:     ТокенАвторизации="10000.rbpqbafb";
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С