2013-05-14 138 views
0

我堅持這個JSON數據:PHP解碼陣列中的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'];但兩者都沒有返回。

有關如何獲取信息的任何想法都會受到歡迎。

+1

圍繞mydata字符串使用單引號。 – shapeshifter 2013-05-14 02:12:24

+0

還缺少字符串末尾的分號。 JSON_decode實際上是json_decode。 – shapeshifter 2013-05-14 02:16:25

+0

固定。只是一個複製粘貼錯誤。 – Travis 2013-05-14 02:27:55

回答

5

$data是一個數組,那麼:

echo $obj['data'];應打印 「陣列」

echo $obj['data'][0]['sku'];應打印 「203823」

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/>"; 
} 
1
$mydata= "{"success":true,"data":[{...}]}" 

$mydata['data']包含對象的陣列。

json{..}內容爲對象,[..]爲數組。

所以,你會去

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

我使用foreach因爲有可能是在你的JSON結果不止一個對象。