2016-04-21 19 views
2

Wenn ich eine api aufrufen, die ein zufälliges Zitat in json Format zurückgibt (ein Titel und Inhalt), erhalte ich die json ganz gut:Parsing json mit JavaScript nicht

ajax({ url: 'quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1', type: 'json' }, 
function(data) { 
console.log((JSON.stringify(data))); 
console.log(data.content); 

console.log((JSON.stringify(data))); 

Ausgänge:

[{ 
    "ID":1562, 
    "title":"Michael Bierut", 
    "content":"Most of the mediocre design today comes from designers who are faithfully doing as they were taught in school: they worship at the altar of the visual.\n", 
    "link":"http:\/\/quotesondesign.com\/michael-bierut-3\/", 
    "custom_meta":{"Source":"article"} 
}] 

Aber console.log(data.content); Ausgänge: keine.

+1

Die Wurzel JSON-Wert nicht über eine ' "Inhalt"' Eigenschaft übereinstimmen 'data.content'. Es scheint "Daten" ist ein Array - 'console.log (Daten [0] .content)', etc. ([Access/Prozess (verschachtelte) Objekte, Arrays oder JSON] (http://stackoverflow.com/questions/ 11922383/access-process-nested-objects-arrays-or-json)) –

+0

@RayonDabre Es ist nicht klar, dass dies jQuery ist. Trotz einiger Ähnlichkeiten scheinen die Argumente nicht mit 'jQuery.ajax()' kompatibel zu sein. –

+0

@ JonathanLonowski, True! – Rayon

Antwort

2

versuchen console.log (Daten [0] .content);

1

Ich glaube, das Problem ist, dass Sie von Parsen sind stringifying statt

console.log(JSON.parse(data));

bearbeiten: Das Beispiel auf die Frage hat einige andere Probleme auch. Hier ist eine richtig formatierte Ajax-Anforderung:

$.ajax({ 
    type: 'GET', 
    dataType: 'json', 
    url: 'URL_HERE', 
    success: function(data) { 
    console.log(data.content); 
    } 
}); 

und ein funktionierendes Beispiel https://jsfiddle.net/1fjqgajk/8/

+0

Die Ajax-Anfrage, die ich gemacht habe, basiert auf der des Kiesel, so wie ich es gemacht habe, ist es die Art und Weise, dies vorzuschlagen. –

0
$.ajax({url:"quotesondesign.com/wp-json/posts? filter[orderby]=rand&filter[posts_per_page]=1",type:'POST',dataType="json",success: function(data){ 
// if you dont wanto to use dataType use eval; 
//var jsonObj=eval(data) 

}});