Чем слеши в JSON мешают?Вроде и одного раза хватает, специально попробовал. В любом случае дважды вызвать json_decode как-то неправильно и скорее всего бессмысленно, если хочется самому убрать слеши то можно использовать сначала stripslashes.
Ничем они не мешают, но автора они же я так понял беспокоят.Чем слеши в JSON мешают?
$json = "{\"cost\":14}";
print_r(json_decode($json, true));
Ну если два раза прогоняли encode, то, думаю, вариантов особых нетДва раза json_decode прогонять?
Ты определись, что у тебя закодировано. Если объект, то ни разу не валидная. Если тупо строка, то не хоти из нее объект.которая валидная по RFC 7159.
Разумеется. Вот это тоже валидно:которая валидная по RFC 7159
> JSON.stringify(JSON.stringify(JSON.stringify(JSON.stringify(JSON.stringify({cost: 14})))))
'"\\"\\\\\\"\\\\\\\\\\\\\\"{\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"cost\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\":14}\\\\\\\\\\\\\\"\\\\\\"\\""'
угу, но кто-то на сервере еще делает, что-то вроде addslashes($json) ...json_encode(string) это и есть, по сути, экранирование
Json я жду, с API общаюсьСтоп. Полный стоп.
Либо строка, либо JSON.
Спасибо! Просто на той стороне человек добавил нлвый метод. Когда я ему написал, что что-то не так с ответом, он не ответил. И тут я засомнеыался...)))Ну так тебе твое API возвращает невалидный объект.
Требуйте валидности объектов после отстоя пены
нет, тут именно двойной json encode, обрати внимание на обрамляющие кавычкиугу, но кто-то на сервере еще делает, что-то вроде addslashes($json) ...
Ну вот и не надо ничего изобретать. Если сказали "API отдаёт JSON", то и надо ждать JSON. Если приходит вместо JSON непойми что, пишем кляузу поставщику API.Json я жду, с API общаюсь