2013-10-15 101 views
0

值的谷歌API的回应是这样的获得来自阵列谷歌图书

{ 
"kind": "books#volumes", 
"totalItems": 1956, 
"items": [ 
    { 
    "kind": "books#volume", 
    "id": "P_zMW3EHnTEC", 
    "etag": "BWKRqUEh9VU", 
    "selfLink": "https://content.googleapis.com/books/v1/volumes/P_zMW3EHnTEC", 
    "volumeInfo": { 
    "title": "The 48 Laws Of Power", 
    "authors": 

现在主阵列为$ bookBatch并在项目是一个数组。 items数组包含volumeInfo数组。并在该volumeInfo有标题。 我想获得标题。所以我写了下面的foreach循环

foreach($bookBatch['items'] as $row) 
    { 
    foreach($row['volumeInfo'] as $volumeinfo) 
     { 

echo $volumeinfo['title']; 

     }  
    } 

但我得到的输出喜欢这个

TP2TB0ehhhTS2YBpehhhTP2TB0ehhhTAN2TB0ehhhPIT1IB0ehhhP2SB0ehhhPP1TBpehhhPW1SBpehhhSTP2HB0ehhhPAP2IB0ehhh 

相反,我应该得到的标题像电力

的48个法则

编辑1

$query="power"; 
    $url = "https://www.googleapis.com/books/v1/volumes?q=".$query; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    $bookBatch = curl_exec($ch); 
    curl_close($ch); 
    $bookBatch = json_decode($bookBatch, true); 
+0

它可以帮助您向我们展示整个JSON响应。你可以将它粘贴到http://pastebin.com? –

+0

http://pastebin.com/Tjsp1fKB – Moz

+0

看起来像print_r输出。向我们展示JSON响应。 –

回答

1

假设您的数据如下所示

$json = '{ 
"kind": "books#volumes", 
"items": [ 
    { 
    "kind": "books#volume", 
    "id": "_ojXNuzgHRcC", 
    "etag": "OTD2tB19qn4", 
    "selfLink": "https://www.googleapis.com/books/v1/volumes/_ojXNuzgHRcC", 
    "volumeInfo": { 
    "title": "Flowers", 
    "authors": [ 
    "Vijaya Khisty Bodach" 
    ] 
    }}]}'; 

$data = json_decode($json, true); 

foreach($data['items'] as $item) 
{ 
    echo $item['volumeInfo']['title']; 

    // This will show the Authors names 
    echo implode(', ', $item['volumeInfo']['authors']); 
} 
+0

为什么选择投票? – Mina

+0

我没有downvote它....但输出是空白的。 – Moz

+0

向我们展示如何创建'$ bookBatch' – Mina