Php json对象错误地保存

Php json对象错误地保存,php,json,Php,Json,我正在测试运行一个web应用程序 其中,json是必需的。我有下面的json 结构: { "Articles": [ { "Article": { "ID": 111, "title": "Idiot", "author": "Moron", "pubDate": "11/2/14", "

我正在测试运行一个web应用程序 其中,json是必需的。我有下面的json 结构:

{
    "Articles": [
        {
            "Article": {
                "ID": 111,
                "title": "Idiot",
                "author": "Moron",
                "pubDate": "11/2/14", 
                "summary": "bla bla bla"
            },

            "Article": {
                "ID": 222,
                "title": "wisdom",
                "author": "wise one",
                "pubDate": "11/2/15", 
                "summary": "ha ha ha"
            }
        } 
    ]
}
然后我决定在添加之前检查匹配的ID是否存在 任何记录。为此,我编写了一个方法,将其封装在 JSon类如下所示:

public function ID_Exists($ID){

        $file = file_get_contents($this->FileName, true);
        $data = json_decode($file, false);       //get json in array string format 

        foreach($data as $child){
            foreach($child as $item){
                if($item->ID ==  $ID){
                    echo 'Exists';
                }else{
                    echo 'Non Existent';
                }
            }
        } 
    }
我的测试运行方式如下:

$Obj = new JSon('file.json');        //knows what to do
 if($Obj->ID_Exists(111)){
     //ok ! no problem
 }else{
     ////no problem
 }
以下是我得到的输出:

Undefined property: stdClass::$ID in 
C:\Server\wamp\www\Oweb\libs\dmanager.php on line 635
我做错了什么?我不想使用数组
json_decode()的格式。

您的json结构是不可能的
Articles
是一个数组,它包含一个对象,该对象包含键
Article
两次-这无法工作

您的结构需要:

{
    "Articles": [
        {
            "ID": 111,
            ...
        },
        {
            "ID": 222,
            ...
        }
    ]
}
您可以使用以下工具进行遍历:

$data = json_decode($json);
foreach ($data->Articles as $article) {
    if ($article->ID == ..) ..
}

谢谢deceze我会照你说的做的,我会尽快回来的。非常感谢你deceze。它工作得完美无缺。我制作这种json结构的原因是因为cos,我只想模仿我的xml结构。从来没有意识到这在json中是不可能的。您刚刚添加到我的知识库中。再次感谢。@OsagieOdigie如果它解决了您的问题,请不要忘记。