С сервера API приходит запрос post(x-www-form-urlencoded) со значением(print_r):
Array
(
[status] => 3
[goods] => {\"alias_ZhOSTOVOChERN1488881464\":{\"goodID\":\"8419\",\"name\":\"ЖОСТОВО ЧЕРН\",\"quantity\":\"1\",\"price\":\"1990\"}}
)
Но при попытке получить goods:
$goods = json_decode($_POST['goods']);
Переменная $goods всегда пустая.. Если просто вывести:
echo $_POST['goods'];
То все отлично выводит, а вот json_decode возвращает пустоту. В чем может быть проблема?
Если на стороне сервере ничего изменить нельзя, то как сказал @Moonvvell, нужно предварительно почистить от экранирования.
Самый простой способ - это убрать экранирование одной заменой перед декодированием
$string=str_replace('\"','"',$_POST['goods']);
И тогда все нормально работает - Демо
Это самая простая замена, если будут проскакивать ошибки (например при наличии в тексте конструкций \" - то замены нужно сделать более сложными, цеплять при замене скобки, ( например заменят {\" на {") и т.д.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Допустим нужно настроить выпадающее меню wordpress под свои нужды, назначить им разные стили, в зависимости от некоторых условийМеню регистрируется...
Стала задача отсортировать массив, приходящий из БДОдин элелемент из этого массива выглядит так: