Ich bin neu bei AJAX
und javascript
. In meinem Projekt muss ich ein json
-Objekt in meiner javascript
-Datei abrufen. Ich habe spray-json
verwendet und es zeigt mir das Json-Objekt in der URL. http://localhost:8081/all-modules
{
"status": "S1000",
"description": "Success",
"results": ["module1", "module2", "module3"]
}
Mein Ajax-Anruf
$.ajax({
url: 'http://localhost:8081/all-modules',
dataType: 'application/json',
complete: function(data){
alert(data)
},
success: function(data){
alert(data)
}
Es gibt eine Warnung [object Object]
zurück. Was ist das Problem hier?
Versuche Folgendes;
var data = '{"name": "John","age": 30}';
var json = JSON.parse(data);
alert(json["name"]);
alert(json.name);
Sie können diesen Link auch überprüfen: Zugriff auf JSON-Objekte in JavaScript
Wenn Sie alle Daten im JSON-Objekt anzeigen möchten, verwenden Sie JSON.stringify
Weitere Informationen finden Sie in here
Hoffentlich hilft das.
nur Console.log (Daten) sehen Sie Ihr Objekt.
sie können auf Ihren Wert durch etwas wie dieses zugreifen
data.id //will give you id
es hängt auch von Ihnen ab, wie Sie das erstellen
// if it simply json then access it directly
//Example => {"id":1,"value":"Apple"}
data.id; // will give you 1
// if it json array then you need to iterate over array and then get value.
//Example => [{"id":1,"value":"Apple"},{"id":2,"value":"MANGO"}] then
data[0].id; // will give you 1
ihr Code wird also so sein
$.ajax({
url: 'http://localhost:8081/all-modules',
dataType: 'application/json',
complete: function(data){
alert(data.status);// S1000
alert(data.description);// Success
// for results you have to iterate because it is an array
var len = data.results.length;
for(var i=0;i<len;i++ ){
alert(data.results[i]);
}
},
success: function(data){
alert(data)
}
})
data
ist nicht mehr im JSON-Format, sondern ein Javascript-Objekt . Sie müssen keine Funktion wie jQuery.parseJSON mehr verwenden.
Es ist ein häufiger Fehler für Anfänger.
Wenn Sie dieses Javascript-Objekt sehen möchten, versuchen Sie alert(JSON.stringify(data));
.
versuchen Sie console.log (), um sich an der Konsole anzumelden. alert zeigt das Objekt nicht an.
$.ajax({
url: 'http://localhost:8081/all-modules',
dataType: 'application/json',
complete: function(data){
console.log(data)
},
success: function(data){
console.log(data)
}
ich denke, Sie drucken nur das Objekt. Versuchen Sie etwas davon
$.ajax({
url: 'http://localhost:8081/all-modules',
dataType: 'application/json',
complete: function(data){
alert("status = "+data.status+"descripttion"+data.description);
},
success: function(data){
alert("status = "+data.status+"descripttion"+data.description);
}
Versuchen Sie data[0].status;
. Ihre Daten befinden sich jetzt in einem Objekt. Bei console.log(data)
können Sie das sehen