#php #json
Имеется следующий json объект: { "ИД": "0f126618-6606-11e7-b4c8-005056c00008", "НоменклатураИД": "af0412c1-2feb-11e7-8c78-005056c00008", "Наименование": "1712 Миа", "ДатаИзменения": "0001-01-01T00:00:00", "Описание": "", "Meta_title": "", "Meta_description": "", "Meta_keyword": "", "Теги": "", "ТканьРегион": "1712 Миа", "СайтАртикул": "1712", "СайтСтиль": "Жаккардовый", "СайтАкция": "Нет", "СайтПоказыватьВМагазине": "Да" } Функция json_decode выводит NULL при попытке вардампа Но при этом вот такой json объект она нормально декодирует: { "ИД": "8574a44b-2b1a-11e7-8c78-005056c00008", "Наименование": "КПБ \"Дуэт\" [Бамбук-жаккард)", "НаименованиеПолное": "КПБ \"Дуэт\" [Бамбук-жаккард)", "Артикул": "360/0034295", "ЕдиницаИзмеренияКод": "796", "ЕдиницаИзмеренияНаименование": "шт", "ВестиУчетПоХарактеристикам": true } В чем может быть проблема?
Ответы
Ответ 1
Вам присылают метку BOM - byte order mark. Конкретно EFBBBF характерна для UTF8. Но json_decode не ожидает такой метки и потому считает документ невалидным. Метку можно безопасно удалять: if (substr_compare($json, "\xEF\xBB\xBF", 0) > 0) { $json = substr($json, 3); } Вообще от этот метки часто проблемы встречаются. Нередко стандарты кодирования (PSR стандарты PHP в том числе) требуют не использовать эту метку.
Комментариев нет:
Отправить комментарий