Get JSON object from AJAX call

自古美人都是妖i 提交于 2019-12-01 14:10:47

问题


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?


回答1:


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




回答2:


If you wish to see all the data in the JSON object, use JSON.stringify Refer here for more details

Hope that helps.




回答3:


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



回答4:


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



回答5:


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



回答6:


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




回答7:


Try data[0].status;. Your data are in an object now. At console.log(data) you can see that



来源:https://stackoverflow.com/questions/22217635/get-json-object-from-ajax-call

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!