Wie um zu überprüfen, ob ein Wert/Eigenschaft existieren in der JSON-Daten

Ich bin mit Google Books API erhalten eine Liste der Bücher, aber manchmal sind einige Buch-Eintrag nicht haben einige Tasten/Eigenschaften, z.B., Autoren, oder nicht haben ein Thumbnail. Damit JavaScript sagt, dass die Immobilie im Versuch, Zugang undefiniert, und meine Anwendung stucks.

Beispiel Json-Daten-Beispiel aus einem Buch suchen, mit dem klappenmechanismus Java

Vollständigen link

https://www.googleapis.com/books/v1/volumes?q=java&callback=jQuery191020691258599981666_1377508821982&_=1377508821983

E. g., wenn Autoren fehlt

TypeError: row.volumeInfo.authors is undefined

Ich tryied zwei Lösungen vorgeschlagen

if ( typeof (authors) != "undefined"){}

und

if('authors' in booksObject) {}

aber nicht von Ihnen scheint zu funktionieren, da Sie nie geben Sie die loops, auch wenn diese proerty vorhanden ist.

Dies ist, wo ich anrufen

function populateListview(books) {

//iterate each returned item
$.each(books.items, function(i, row) {

    //populate each row in the list
    var htmlString = '<li><a href="book_details.html?id=' + row.id + '"><img src="';

    htmlString += row.volumeInfo.imageLinks.thumbnail + '"';
    htmlString += 'class="ui-li-has-thumb"/><h3>';
    //Check if authors exists in JSON
    htmlString += row.volumeInfo.title + '</h3><p>' + row.volumeInfo.authors[0] + '</p></a></li>';

    //If not add an undefined authors string in the authors 


    console.log(htmlString);

    //append new html to the list
    $('#book_list').append(htmlString);
});

$('#book_list').listview('refresh');
//refresh the list-view so new elements are added to the DOM
};

InformationsquelleAutor Lali Pali | 2013-08-26

Schreibe einen Kommentar