检查JSON中是否存在特定的键值

时间:2015-03-09 09:57:45

标签: php json

我有一个JSON脚本,它有几个都包含id的对象。我想检查一个具有特定id的对象是否存在,如果是,则应该检索id。

 $json = {"match_id":"1234"};
 $mydata = json_decode($json,true);
 $specific_id = $_GET['id'];

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:2)

$data = json_decode($json, true);

if (!empty($data['match_id']) {
    // if you're sending your ids as a comma'd string, for some reason
    $ids = explode(',', $data['match_id']);
    if (in_array($idYouAreCheckingFor, $ids)) {
        // do something
    }
}

if (!empty($data['match_id']) {
    // if not, ignore the above line
    if (in_array($idYouAreCheckingFor, $data['match_id'])) {
        // do something
    }
}

您的数据很可能无法正常传递,或者您的索引或ID为空白。检查总是好的。

答案 1 :(得分:1)

您可以像这样使用in_array()

in_array($specific_id, $mydata);

答案 2 :(得分:0)

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

 $json = {"match_id":"1234"};
 $mydata = json_decode($json);
 if (isset($mydata->match_id)) {
    echo $mydata->match_id; // 1234
 }