Comment vérifier si une valeur de la propriété existent dans les données JSON

Je suis en utilisant Google Livres API pour recevoir une liste de livres, mais parfois certains livres n'ont pas de certaines touches/propriétés, par exemple, Auteurs, ou ne pas avoir un Vignette. Donc JavaScript dit que les biens im essayant d'accès n'est pas défini et ma demande stucks.

Exemple Les données Json exemple à partir d'un livre de recherche contenant le clétage Java

Lien complet

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

E. g., lorsque Auteurs est manquant

TypeError: row.volumeInfo.authors is undefined

Je tryied deux solutions proposées

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

et

if('authors' in booksObject) {}

mais non d'entre eux semble fonctionner, car ils n'entrent jamais dans la boucle, même lorsque cette propriété existe.

C'est là que j'appelle

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
};

OriginalL'auteur Lali Pali | 2013-08-26