忍者ブログ

VB.NET-TIPS などプログラミングについて

VB.NETのTIPS(小技集)を中心に、Javascript、PHP その他のプログラミングについて少し役に立つ情報を発信します。いわゆる個人的な忘備録ですが、みなさんのお役に立てれば幸いです。

【PHP】json_decode ではまったこと(要素名はダブルクォートで囲む)

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

コメント

コメントを書く