2012-03-29 2 views
0

Как обычно, я работаю с моей испорченной базой данных, и я обнаружил, что в базе данных есть некоторая строка с JSON с добавлением fuxked ... В некоторых строках JSON отсутствуют двойные кавычки ключи и/или значения.JSON: исправить перепутанную строку JSON

Я подумываю написать PHP-скрипт, чтобы исправить это, какие рекомендации у вас есть о том, как я могу обнаружить недостающие кавычки и автоматически добавить их? Или нет такого удобного способа ...

Спасибо, умное сообщество!

+1

[PEARs JSON class] (http://pear.php.net/package/Services_JSON) может анализировать такие выражения Javascript, также как и updatephp; хотя и не для значений. Подходы к конверсии были рассмотрены в предыдущих вопросах по этой теме. – mario

+0

@mario Спасибо за информацию, но справляется ли она с такой ситуацией с отсутствующими котировками? Проблема в том, что некоторые строки JSON не очень хорошо сформированы ... В любом случае я сделаю поиск по другим подобным вопросам и посмотрю, что я нахожу ... –

+1

Да, он обрабатывает отсутствующие ключевые кавычки. Но нет, полностью искаженный JSON не может быть реконструирован. Для этого вам понадобится устойчивое регулярное выражение. (= Нет. Слишком много усилий.) – mario

ответ

1

Вы можете использовать json_decode и json_last_error, чтобы определить, есть ли ошибка в строке. А затем json_encode, чтобы написать допустимое значение json.

+0

Спасибо за ваш ответ, однако я не вижу, как мне поможет json_last_error. Я знаю, что будет ошибка, но исправление является основной проблемой. –

+0

Ну, я уже исправил проблему, к счастью, количество ошибок содержится, поэтому я могу просто сделать очень специфическое обнаружение ... Спасибо за ваш ответ, и я приму ваш ответ, чтобы оценить вашу помощь :) –

+0

спасибо очень. Я рад, что вы это поняли – cegfault

Смежные вопросы