json_decode を使っていた時に JSON としては問題無いのではと思っていたものが、 結果として NULL が返ってきていました。
PHP のソースとしては以下の様な感じです。
<?php
$strJson = file_get_contents('test.json');
$arrData = json_decode($strJson, true);
// この $arrData がNULLになる
?>
test.json の内容は以下です。
{
records: [
{ id: 1, data1: "aaaaa", data2: "111" },
{ id: 2, data1: "bbb" , data2: "2222"},
{ id: 3, data1: "cccc" , data2: "333" }
]
}
データの見た目は特に問題無い様なのですが、上手くいかなかったので PHP のマニュアルにあたってみると、 要素名はダブルクォートで囲まないと json_decode の結果が NULL で返ることが載っていました。 早速、要素名をダブルクォートで囲んでみました。
{
"records": [
{ "id": 1, "data1": "aaaaa", "data2": "111" },
{ "id": 2, "data1": "bbb" , "data2": "2222"},
{ "id": 3, "data1": "cccc" , "data2": "333" }
]
}
json_decode の結果として records の配列が返ってきました。
やはり何かおかしい動きが在ったら先ず正式なドキュメントを見ることですね。 (私自身の戒めですが)
PR
コメント