我对这个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'];
,但都没有返回任何内容。
欢迎任何关于如何获取信息的想法。
答案 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/>";
}