I'm new to AJAX
and javascript
. In my project, I have to get a json
object in my javascript
file. I've used spray-json
and it shows me the json object in the url. http://localhost:8081/all-modules
{
"status": "S1000",
"description": "Success",
"results": ["module1", "module2", "module3"]
}
My Ajax call
$.ajax({
url: 'http://localhost:8081/all-modules',
dataType: 'application/json',
complete: function(data){
alert(data)
},
success: function(data){
alert(data)
}
It returns an alert [object Object]
. What is the issue in here?
Try the following;
var data = '{"name": "John","age": 30}';
var json = JSON.parse(data);
alert(json["name"]);
alert(json.name);
You can also check out this link: How to access JSON object in JavaScript
If you wish to see all the data in the JSON object, use JSON.stringify
Refer here for more details
Hope that helps.
just console.log(data) you will see your object.
you can access your value by something like this
data.id //will give you id
it also depend on you json how you are creating check this out for explanation
// 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
so your code will be like this
$.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)
}
})
try console.log() it will log on the console. alert doesnot displays the object.
$.ajax({
url: 'http://localhost:8081/all-modules',
dataType: 'application/json',
complete: function(data){
console.log(data)
},
success: function(data){
console.log(data)
}
i think you just printing the object.Try someting like this
$.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);
}
data
is no longer in JSON format, it is a Javascript Object. You do not need to use function like jQuery.parseJSON anymore.
It is one common mistake for beginners.
If you want to see this Javascript Object, try alert(JSON.stringify(data));
Try data[0].status;
. Your data are in an object now. At console.log(data)
you can see that