У меня есть текстовый файл, отформатированный как JSON, но в удобном для печати / просмотра формате, и я хочу преобразовать эту строку в допустимый JSON.
По сути, я хочу прочитать файл, используя PHP5 и вызвать json_decode для десериализации строки.
Но json_decode не может проанализировать «пригодную для печати» строку json.
Я получаю сообщение об ошибке 4 Неправильный или неправильно сформированный JSON.
Похоже, у кого-то еще была похожая проблема, как у меня: PHP json_decode () возвращает NULL с допустимым JSON?
Я использую блокнот ++ для записи файла json.
Итак, как мне конвертировать
FROM:
{
"data": [
{
"thumbImg": "thumbImg",
"street": "street",
"city": "Fort Worth",
"state": "Texas",
"zip": "76192-0001",
"url": "url"
}
]
}
TO:
{"data":[{"thumbImg": "thumbImg", "street": "street", "city": "Fort Worth", "state": "Texas", "zip": "76192-0001", "url": "url"}]
Я даже пытался сделать следующее:
<?php
$filename = "links.json";
$file = fopen($filename, "r");
$lines = file($filename);
$data = "";
;
foreach ($lines as $line_num => $line) {
$formatted = trim($line);
$formatted = str_replace("\r", "", $formatted);
$formatted = str_replace("\n", "", $formatted);
$data .= $formatted;
}
$json = json_decode($data, true);
?>
Я сделал var_dump для полученной строки json и http://jsonlint.com/ пометил ее как действительный json; однако json_decode по какой-то причине не может десериализовать строку json.
Спасибо!
РЕШЕНИЕ
Я установил кодировку текстового файла в UTF-8 без спецификации, и теперь он работает нормально. спасибо всем!