使用php从JSON中找到特定元素

时间:2014-05-28 20:17:02

标签: php json google-cloud-messaging

我正在使用php服务器实现GCM。 我正在使用JSON获得响应,如下所示:

{"multicast_id":5500424824887517718,"success":1,"failure":1,"canonical_ids":1,"results":[{"message_id":"0:1401303281549959%31e4cc17f9fd7ecd","registration_id":"APA91bGiXGz2KgfS1kELa7YM4VEEnnAk1H2_isOnWzJ0lNCJEmICQhjWaxQXJ0riZatG1LvZSRUYMNHF"},{"error":"NotRegistered"}]}  

现在从JSON,我必须检查响应中是否有任何错误。我不知道怎么检查。

修改 我已经明白了如何达到“错误”字段。但现在错误是我无法访问“registration_id”字段。 我只需检查是否在“结果”的任何索引处都存在“registration_id”字段?

请帮助我。

提前致谢。

1 个答案:

答案 0 :(得分:2)

查看PHP的json_decode函数。这会将JSON转换为可以查询错误的PHP数组。

http://www.php.net/manual/en/function.json-decode.php

修改

$php_array = json_decode('{...}');  // Turn JSON into PHP array
$results = $php_array['results'];
foreach($results as $result) {  // Loop through results
    if (array_key_exists('registration_id', $result)) {  // Check if entry has a registration_id
        $registration_id = $result['registration_id'];  // Record registration_id
    }
}