2

複数のオブジェクトを含む JSON 配列がありjson_decode、関連配列を作成するために使用しようとしています。

サンプルデータ

$json='[{   
         type: "cool",
         category: "power",
         name: "Robert Downey Jr.",
         character: "Tony Stark / Iron Man",
         bio: "cool kid"
     },
       {
         type: "cool",
         category: "power",
         name: "Chris Hemsworth",
         character: "Thor",
         bio: "cool kid"
     },
     {
         type: "NotCool",
         category: "nothing",
         name: "Alexis Denisof",
         character: "The Other",
         bio: "cool kid"
     }]';

これが私がやっていることです:

$data = json_decode($json, true);

結果が得られますNULL。私は何を間違っていますか?

(私はPHPが初めてです。)

4

4 に答える 4

2

JSON 文字列が無効です。キーも引用符で囲む必要があります。JSONlint Web サイトを使用して、JSON の有効性を確認します。

于 2013-08-30T14:35:07.543 に答える
1

Validate Json の作成 これを試してください

<?php
$json='[
    {
        "type": "cool",
        "category": "power",
        "name": "Robert Downey Jr.",
        "character": "Tony Stark / Iron Man",
        "bio": "cool kid"
    },
    {
        "type": "cool",
        "category": "power",
        "name": "Chris Hemsworth",
        "character": "Thor",
        "bio": "cool kid"
    },
    {
        "type": "NotCool",
        "category": "nothing",
        "name": "Alexis Denisof",
        "character": "The Other",
        "bio": "cool kid"
    }
]';
$data = json_decode($json, true);
echo "<pre>" ;
print_r($data);
?>
于 2013-08-30T14:37:24.293 に答える
1

これは有効な JSON ではありません。オブジェクト内のキーは、二重引用符 ( ") で囲む必要があります。

そのはず:

$json='[{
     "type": "cool",
     "category": "power",
     "name": "Robert Downey Jr.",
     "character": "Tony Stark / Iron Man",
     "bio": "cool kid"
},
{
     "type": "cool",
     "category": "power",
     "name": "Chris Hemsworth",
     "character": "Thor",
     "bio": "cool kid"
},
{
     "type": "NotCool",
     "category": "nothing",
     "name": "Alexis Denisof",
     "character": "The Other",
     "bio": "cool kid"
}]';
于 2013-08-30T14:35:16.040 に答える
1

プロパティ名を二重引用符で囲む必要があるため、

JSON

[{   
    "type" : "cool",
    "category" : "power",
    "name" : "Robert Downey Jr.",
    "character" : "Tony Stark / Iron Man",
    "bio" : "cool kid"
}]

ちょうど試して

PHP

echo json_encode(array("name" => "Tony Stark"));

有効なjsonが表示されます

于 2013-08-30T14:36:07.890 に答える