PHP解码Json对象中的数组

时间:2013-05-14 02:08:38

标签: php arrays json

我对这个Json数据感到困惑:

我在变量中有这个信息:

$mydata= '{"success":true,"data":[{"sku":203823,"issoldout":false,"isShowDiscount":false,"discount":0,"currencycode":"USD","currencysymbol":"US$","price":"10.20","listprice":"","adddate":"4/23/2013"}]}';

我设法通过这样做来判断成功是否成立:

$obj = JSON_decode($mydata, true);

if ($obj['success'] != 1) {
    print 'Does Not Exist<br />';
}
else{
    print $obj['success']."<br/>";
}

其中echo $obj['success'];如果为True则等于1,如果为False则等于0。

让我陷入困境的是如何获取“数据”中的键:[]数组。

我尝试了print $obj['data'][0];print $obj['data']['sku'];,但都没有返回任何内容。

欢迎任何关于如何获取信息的想法。

3 个答案:

答案 0 :(得分:5)

$data是一个数组:

echo $obj['data'];应该打印“数组”

echo $obj['data'][0]['sku'];应打印“203823”

答案 1 :(得分:1)

 $mydata= "{"success":true,"data":[{...}]}"

$mydata['data']包含一系列对象。

json中,{..}内容用于对象,[..]用于数组。

所以你会去

foreach($obj['data'] as $items)
{
    echo $items['sku'];
}

我正在使用foreach,因为JSON结果中可能有多个对象。

答案 2 :(得分:0)

请参阅我的评论,此代码成功运行。

$mydata= '{"success":true,"data":[{"sku":203823,"issoldout":false,"isShowDiscount":false,"discount":0,"currencycode":"USD","currencysymbol":"US$","price":"10.20","listprice":"","adddate":"4/23/2013"}]}';

$obj = json_decode($mydata, TRUE);

if ($obj['success'] != 1) {
  print 'Does Not Exist<br />';
}
else{
  print $obj['success']."<br/>";
}