Две пары двойных кавычек в json

118
08 марта 2019, 06:40

Приходит мне от API такой вот json:

{"value\":\"г. Москва\/Общество с ограниченной ответственностью \\"Автостандарт-36\\"\"}

Функция json_decode($result,true); при таком исходе ломается, когда натыкается опять на кавычки, в которых значение - Автостандарт-36.

Пробовал заменять слеши вот так, но всё равно что-то не так.

$result = str_replace('\\"', ' ', $result);

как правильно отпарсить данные json?

Answer 1

Попробуйте такой вариант:

function fixed($json)
{
    return str_replace('`', '"', preg_replace(
            '/`([^`]+)`(?=`)/', 
            '\\\"$1\"', 
            str_replace(['\"', '"'], '`', $json))
    );
}
print_r(json_decode(fixed($json), true));
Answer 2

Костыльный приход, костыльное решение:

$result = '{"value\":\"г. Москва\/Общество с ограниченной ответственностью \\\\"Автостандарт-36\\\\"\"}';
var_dump($result);
$result = str_replace('\"', '"', $result);
var_dump($result);
var_dump (json_decode($result,true));

Тогда, входная строка:

{"value\":\"г. Москва\/Общество с ограниченной ответственностью \\"Автостандарт-36\\"\"}

После str_replace:

{"value":"г. Москва\/Общество с ограниченной ответственностью \"Автостандарт-36\""}

Результат:

array(1) {
  ["value"]=>
  string(124) "г. Москва/Общество с ограниченной ответственностью "Автостандарт-36""
}
READ ALSO
Laravel передача информации между сервисами через очередь

Laravel передача информации между сервисами через очередь

Вопрос такой, есть два микро-сервиса, один создает транзакцию и кидает в очередь (rabbitmq) второй сервис должен ее подхватить и обработатьСтолкнулись...

136
Как скрыть часть url?

Как скрыть часть url?

Как можно преобразовать такой url http://sitenameru/katalog/nazvaniekategorii/ в такой: http://sitename

183
Carbon laravel получить день

Carbon laravel получить день

есть дата $request->datestart = '2018-10-02'

160
Как создать в приложении ссылку для просмотра документа на Google Drive?

Как создать в приложении ссылку для просмотра документа на Google Drive?

Возможно ли, и как создать ссылку для просмотра документа, который лежит на гугл диске, для показа на сайте? Использую Google API для взаимодействия...

159