JSON解码 - 返回未定义的索引

时间:2015-10-14 13:06:52

标签: php json

我试图更熟悉JSON解码,所以这就是我得到的:

$json = '{"id":[{"tier": "SILVER"}]}';
$array = json_decode($json, true);
var_dump($array["id"]['tier']); 

我正在尝试抓取'等级,但却导致以下错误:Notice: Undefined index: tier

我尝试过某些事情,例如var_dump($array['tier']);var_dump($array[0]['tier']);,但似乎没有任何效果,我找不到很多有关此事的信息。

Notice之后,它还会返回NULL。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:3)

结果数组中的id键将包含一个数字索引的数组数组。 要访问,您需要在该数组中指定键,在本例中为0,因为只有一个元素

var_dump($array["id"][0]['tier']);

如果您要解码到对象而不是强制关联数组(通过省略true调用中的json_decode),您可能会发现语法更容易阅读:

$json = '{"id":[{"tier": "SILVER"}]}';
$obj = json_decode($json);

var_dump($obj->id[0]->tier); 

答案 1 :(得分:0)

您需要访问阵列[0]上的第一项["id"] 试试这个:

$json = '{"id":[{"tier": "SILVER"}]}';
$array = json_decode($json, true);
var_dump($array["id"][0]['tier']); 
//string(6) "SILVER"