2016-04-10 20 views
0

私はこのJSON持っている:「モッキンバード」という用語について楽天ブックスAPI検索を行うと、このスクリプトを使用してJSONにXMLからの結果を変換することによって作成されたこれらのJSON結果からタイトルを取得するにはどうすればよいですか?

{"Request":{"authentication":"true","key":{},"method":{}},"search":{"query":{},"results-start":"1","results-end":"20","total-results":"453","source":"Goodreads","query-time-seconds":"0.15","results":{"work":[{"id":"3275794","books_count":"415","ratings_count":"2789161","text_reviews_count":"61819","original_publication_year":"1960","original_publication_month":{"@attributes":{"type":"integer","nil":"true"}},"original_publication_day":{"@attributes":{"type":"integer","nil":"true"}},"average_rating":"4.24","best_book":{"@attributes":{"type":"Book"},"id":"2657","title":"To Kill a Mockingbird","author":{"id":"1825","name":"Harper Lee"},"image_url":"https:\/\/d.gr-assets.com\/books\/1361975680m\/2657.jpg","small_image_url":"https:\/\/d.gr-assets.com\/books\/1361975680s\/2657.jpg"}},{"id":"6790315","books_count":"21","ratings_count":"20230","text_reviews_count":"3203","original_publication_year":"2010","original_publication_month":"1","original_publication_day":"1","average_rating":"4.17","best_book":{"@attributes":{"type":"Book"},"id":"6596547","title":"Mockingbird","author":{"id":"688672","name":"Kathryn Erskine"},"image_url":"https:\/\/d.gr-assets.com\/books\/1301271068m\/6596547.jpg","small_image_url":"https:\/\/d.gr-assets.com\/books\/1301271068s\/6596547.jpg"}},{"id":"7100578","books_count":"8","ratings_count":"5526","text_reviews_count":"942","original_publication_year":"2010","original_publication_month":"11","original_publication_day":"2","average_rating":"3.79","best_book":{"@attributes":{"type":"Book"},"id":"6882274","title":"The Mockingbirds (The Mockingbirds, #1)","author":{"id":"3081700","name":"Daisy Whitney"},"image_url":"https:\/\/d.gr-assets.com\/books\/1281310031m\/6882274.jpg","small_image_url":"https:\/\/d.gr-assets.com\/books\/1281310031s\/6882274.jpg"}},{"id":"313880","books_count":"37","ratings_count":"2856","text_reviews_count":"295","original_publication_year":"1980","original_publication_month":{"@attributes":{"type":"integer","nil":"true"}},"original_publication_day":{"@attributes":{"type":"integer","nil":"true"}},"average_rating":"4.12","best_book":{"@attributes":{"type":"Book"},"id":"323172","title":"Mockingbird","author":{"id":"4448408","name":"Walter Tevis"},"image_url":"https:\/\/s.gr-assets.com\/assets\/nophoto\/book\/111x148-bcc042a9c91a29c1d680899eff700a03.png","small_image_url":"https:\/\/s.gr-assets.com\/assets\/nophoto\/book\/50x75-a91bf249278a81aabab721ef782c4a74.png"}},{"id":"372876","books_count":"3","ratings_count":"637","text_reviews_count":"50","original_publication_year":"1998","original_publication_month":{"@attributes":{"type":"integer","nil":"true"}},"original_publication_day":{"@attributes":{"type":"integer","nil":"true"}},"average_rating":"3.86","best_book":{"@attributes":{"type":"Book"},"id":"383106","title":"Mockingbird","author":{"id":"13143","name":"Sean Stewart"},"image_url":"https:\/\/d.gr-assets.com\/books\/1354903122m\/383106.jpg","small_image_url":"https:\/\/d.gr-assets.com\/books\/1354903122s\/383106.jpg"}},{"id":"21954272","books_count":"2","ratings_count":"56","text_reviews_count":"24","original_publication_year":"2013","original_publication_month":"8","original_publication_day":"13","average_rating":"3.61","best_book":{"@attributes":{"type":"Book"},"id":"16129330","title":"Mockingbird","author":{"id":"6572384","name":"Julie Trimingham"},"image_url":"https:\/\/d.gr-assets.com\/books\/1386729777m\/16129330.jpg","small_image_url":"https:\/\/d.gr-assets.com\/books\/1386729777s\/16129330.jpg"}},{"id":"44458285","books_count":"71","ratings_count":"104794","text_reviews_count":"18897","original_publication_year":"2015","original_publication_month":"7","original_publication_day":"14","average_rating":"3.32","best_book":{"@attributes":{"type":"Book"},"id":"24817626","title":"Go Set a Watchman (To Kill a Mockingbird, #2)","author":{"id":"1825","name":"Harper Lee"},"image_url":"https:\/\/d.gr-assets.com\/books\/1451442088m\/24817626.jpg","small_image_url":"https:\/\/d.gr-assets.com\/books\/1451442088s\/24817626.jpg"}},{"id":"676450","books_count":"8","ratings_count":"609","text_reviews_count":"142","original_publication_year":"2007","original_publication_month":"4","original_publication_day":"1","average_rating":"3.46","best_book":{"@attributes":{"type":"Book"},"id":"690102","title":"In Search of Mockingbird","author":{"id":"369002","name":"Loretta Ellsworth"},"image_url":"https:\/\/d.gr-assets.com\/books\/1316727230m\/690102.jpg","small_image_url":"https:\/\/d.gr-assets.com\/books\/1316727230s\/690102.jpg"}},{"id":"26123583","books_count":"4","ratings_count":"2541","text_reviews_count":"593","original_publication_year":"2014","original_publication_month":"5","original_publication_day":"20","average_rating":"3.79","best_book":{"@attributes":{"type":"Book"},"id":"18465605","title":"I Kill the Mockingbird","author":{"id":"321290","name":"Paul Acampora"},"image_url":"https:\/\/d.gr-assets.com\/books\/1380963917m\/18465605.jpg","small_image_url":"https:\/\/d.gr-assets.com\/books\/1380963917s\/18465605.jpg"}},{"id":"41055515","books_count":"1","ratings_count":"0","text_reviews_count":"0","original_publication_year":"2014","original_publication_month":"1","original_publication_day":"1","average_rating":"0.0","best_book":{"@attributes":{"type":"Book"},"id":"21799755","title":"Mockingbird","author":{"id":"7189690","name":"X"},"image_url":"https:\/\/s.gr-assets.com\/assets\/nophoto\/book\/111x148-bcc042a9c91a29c1d680899eff700a03.png","small_image_url":"https:\/\/s.gr-assets.com\/assets\/nophoto\/book\/50x75-a91bf249278a81aabab721ef782c4a74.png"}},{"id":"18281451","books_count":"21","ratings_count":"2406","text_reviews_count":"382","original_publication_year":"2012","original_publication_month":"1","original_publication_day":"1","average_rating":"4.13","best_book":{"@attributes":{"type":"Book"},"id":"13108221","title":"Mockingbird (Miriam Black, #2)","author":{"id":"17152","name":"Chuck Wendig"},"image_url":"https:\/\/d.gr-assets.com\/books\/1330371155m\/13108221.jpg","small_image_url":"https:\/\/d.gr-assets.com\/books\/1330371155s\/13108221.jpg"}},{"id":"19221873","books_count":"2","ratings_count":"1665","text_reviews_count":"238","original_publication_year":"2013","original_publication_month":"4","original_publication_day":"23","average_rating":"4.06","best_book":{"@attributes":{"type":"Book"},"id":"15843172","title":"Tequila Mockingbird: Cocktails with a Literary Twist","author":{"id":"5446689","name":"Tim Federle"},"image_url":"https:\/\/d.gr-assets.com\/books\/1359423297m\/15843172.jpg","small_image_url":"https:\/\/d.gr-assets.com\/books\/1359423297s\/15843172.jpg"}},{"id":"3570755","books_count":"3","ratings_count":"46","text_reviews_count":"9","original_publication_year":"1998","original_publication_month":{"@attributes":{"type":"integer","nil":"true"}},"original_publication_day":{"@attributes":{"type":"integer","nil":"true"}},"average_rating":"3.59","best_book":{"@attributes":{"type":"Book"},"id":"1619397","title":"Mockingbird","author":{"id":"45317","name":"Allan Ahlberg"},"image_url":"https:\/\/s.gr-assets.com\/assets\/nophoto\/book\/111x148-bcc042a9c91a29c1d680899eff700a03.png","small_image_url":"https:\/\/s.gr-assets.com\/assets\/nophoto\/book\/50x75-a91bf249278a81aabab721ef782c4a74.png"}},{"id":"15930583","books_count":"8","ratings_count":"837","text_reviews_count":"185","original_publication_year":"2012","original_publication_month":"2","original_publication_day":"6","average_rating":"3.70","best_book":{"@attributes":{"type":"Book"},"id":"11011545","title":"The Rivals (The Mockingbirds, #2)","author":{"id":"3081700","name":"Daisy Whitney"},"image_url":"https:\/\/d.gr-assets.com\/books\/1329509815m\/11011545.jpg","small_image_url":"https:\/\/d.gr-assets.com\/books\/1329509815s\/11011545.jpg"}},{"id":"25647256","books_count":"2","ratings_count":"197","text_reviews_count":"27","original_publication_year":"2013","original_publication_month":"2","original_publication_day":"20","average_rating":"3.73","best_book":{"@attributes":{"type":"Book"},"id":"18218379","title":"The Song of the Mockingbird","author":{"id":"6448032","name":"Bill Cronin"},"image_url":"https:\/\/d.gr-assets.com\/books\/1376853384m\/18218379.jpg","small_image_url":"https:\/\/d.gr-assets.com\/books\/1376853384s\/18218379.jpg"}},{"id":"808023","books_count":"13","ratings_count":"1472","text_reviews_count":"62","original_publication_year":"1972","original_publication_month":"1","original_publication_day":"1","average_rating":"4.14","best_book":{"@attributes":{"type":"Book"},"id":"39774","title":"Mockingbird Wish Me Luck","author":{"id":"13275","name":"Charles Bukowski"},"image_url":"https:\/\/d.gr-assets.com\/books\/1407706745m\/39774.jpg","small_image_url":"https:\/\/d.gr-assets.com\/books\/1407706745s\/39774.jpg"}},{"id":"21946472","books_count":"6","ratings_count":"974","text_reviews_count":"219","original_publication_year":"2013","original_publication_month":"6","original_publication_day":"1","average_rating":"3.77","best_book":{"@attributes":{"type":"Book"},"id":"16124135","title":"When Mockingbirds Sing","author":{"id":"3448642","name":"Billy Coffey"},"image_url":"https:\/\/d.gr-assets.com\/books\/1351878615m\/16124135.jpg","small_image_url":"https:\/\/d.gr-assets.com\/books\/1351878615s\/16124135.jpg"}},{"id":"45115186","books_count":"4","ratings_count":"89","text_reviews_count":"34","original_publication_year":"2015","original_publication_month":"5","original_publication_day":"7","average_rating":"4.10","best_book":{"@attributes":{"type":"Book"},"id":"25368964","title":"Mockingbird Songs","author":{"id":"1086719","name":"R.J. Ellory"},"image_url":"https:\/\/d.gr-assets.com\/books\/1429176973m\/25368964.jpg","small_image_url":"https:\/\/d.gr-assets.com\/books\/1429176973s\/25368964.jpg"}},{"id":"40785903","books_count":"4","ratings_count":"1576","text_reviews_count":"227","original_publication_year":"2014","original_publication_month":"6","original_publication_day":"26","average_rating":"4.27","best_book":{"@attributes":{"type":"Book"},"id":"21468147","title":"Tequila Mockingbird (Sinners #3)","author":{"id":"4968409","name":"Rhys Ford"},"image_url":"https:\/\/d.gr-assets.com\/books\/1394939612m\/21468147.jpg","small_image_url":"https:\/\/d.gr-assets.com\/books\/1394939612s\/21468147.jpg"}},{"id":"20261011","books_count":"2","ratings_count":"5","text_reviews_count":"3","original_publication_year":"2009","original_publication_month":"12","original_publication_day":"7","average_rating":"4.60","best_book":{"@attributes":{"type":"Book"},"id":"12592969","title":"The Song of the Mockingbird","author":{"id":"5524594","name":"McDonald Mark McDonald"},"image_url":"https:\/\/s.gr-assets.com\/assets\/nophoto\/book\/111x148-bcc042a9c91a29c1d680899eff700a03.png","small_image_url":"https:\/\/s.gr-assets.com\/assets\/nophoto\/book\/50x75-a91bf249278a81aabab721ef782c4a74.png"}}]}}} 

...:

<?php 
    $xml_string = file_get_contents("https://www.goodreads.com/search?q=" .$_REQUEST['search']. "&search%5Bfield%5D=title&format=xml&key=ZuqW9sL15d3JvEwmLyaNCg"); 
    $xml = simplexml_load_string($xml_string); 
    $json = json_encode($xml); 
    $array = json_decode($json,TRUE); 
    echo $json; 
?> 

私の質問は、JSONの結果からタイトルを取得する方法です。問題の一部は、JSONでは、仕事は配列であり、タイトルは配列項目のbest_bookのメンバーであると私は信じています。 「予期しないトークン」

$.each(json.search.results.work, function(){ 
    console.log(this.best_book.title); 
}); 

が、そうすることで、私はエラーを取得:だから、私のような何かを実装しようとしていますコードの最初の行です。

アイデアはありますか?ありがとうございました。

編集:(あなたの変数にdataを変更する必要があります)ので、同様

function GetBooks(request) { 
    //Replace spaces with a '+' 
    var url = request.term.replace(/\s/g,"+"); 
    return $.ajax({ 
     'url': "php/bookscript.php?search=" + url, 
     'dataType': 'json' 
    }).then(function(data){ 
     return $.map(data.results || [], function(v,i){ 
      return { 
       label: 'test', 
       value: 'test' 
      } 
     }); 
    }) 
} 
+3

それはその単一のライン、あなたがそこに先頭に持っているJSONの10マイルの長い部分を使用するのはとても不可能です。あなたはおそらく 'var_dump($ array);'とそれの結果を投稿できますか? – larsAnders

答えて

3

:ここに私のAJAX呼び出しの

$.each(data.search.results.work, function(index, value){ 
    console.log(value.best_book.title); 
}); 

https://jsfiddle.net/7c43bz35/

更新:

Iドンラベルは何で、価値はあるのか本当に分かりませんが、 LDヘルプあなた:

$.map(data.search.results.work || [], function(v, i) { 
    return { 
     value : v.best_book.title 
    } 
}) 

https://jsfiddle.net/7c43bz35/1/

+0

ありがとうございます。それは素晴らしい作品です!私はAJAXの呼び出しでこれを動作させようとしてきましたが、今は少し時間がかかります。私はAJAXコールを元の投稿に編集しました。 'value.best_book.title'のラベルと値を返すようにあなたのコードを呼び出しと組み合わせる方法を知っていますか? – marinarasauce67

+1

私の答えを更新しました。さらに質問がある場合は、新しい質問を作成する必要があります。 – Xzandro

+0

ありがとうございました! – marinarasauce67

関連する問題