0

我被这个 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'];如果为真则等于 1,如果为假则等于 0。

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

我试过了print $obj['data'][0];print $obj['data']['sku'];但都没有返回。

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

4

3 回答 3

5

$data是一个数组,所以:

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

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

于 2013-05-14T02:12:36.923 回答
1
 $mydata= "{"success":true,"data":[{...}]}"

$mydata['data']包含一个对象数组。

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

所以你会去

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

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

于 2013-05-14T02:15:20.007 回答
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/>";
}
于 2013-05-14T02:13:04.447 回答