检查php中是否有特定的JSON对象可用

时间:2013-03-16 01:09:00

标签: php json

我有以下JSON:

$p={
  "main1" : [
    {
      "child1" : valueA,
      "child2" : valueB,
      "child3" : valueC,
    },
    {
      "child1" : value1,
      "child3" : value3,
    },
  ],
  "main2" : "valueMain2"
}

必须检查元素child2是否存在,然后取值。我正在使用json_decode:

$response = json_decode($p,true);

如何检查PHP中是否存在元素?我是否必须制作单独的功能或是否有内置功能?

3 个答案:

答案 0 :(得分:9)

与检查是否存在任何数组的键的方式相同:

isset($array['key'])array_key_exists('key',$array)

答案 1 :(得分:1)

以下是我一直在做的事情。

$child2exists = count($response['main1']['child2']);

If ($child2exists == 1) 
{ 
    echo "EXISTS"; 
}
else
{ 
    echo "DOESNT EXIST"; 
}

希望这有帮助。

答案 2 :(得分:0)

您可以将json decode用作对象并检查存在的内容:

$response = json_decode($p);
if (isset($response->main2)) {
   echo $response->main2; // valueMain2
}

您还可以使用foreach获取项目列表:

foreach ($response->main1 as $item) {
   echo $item->child1; // valueA value1
}