Php json对象错误地保存
我正在测试运行一个web应用程序 其中,json是必需的。我有下面的json 结构:Php json对象错误地保存,php,json,Php,Json,我正在测试运行一个web应用程序 其中,json是必需的。我有下面的json 结构: { "Articles": [ { "Article": { "ID": 111, "title": "Idiot", "author": "Moron", "pubDate": "11/2/14", "
{
"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如果它解决了您的问题,请不要忘记。