Получить объект JSON из вызова AJAX

Я новичок в AJAX и javascript. В моем проекте мне нужно получить объект json в моем файле javascript. Я использовал spray-json, и он показывает мне объект json в URL-адресе. http://localhost:8081/all-modules

{
  "status": "S1000",
  "description": "Success",
  "results": ["module1", "module2", "module3"]
}

Мой вызов Ajax

  $.ajax({
        url: 'http://localhost:8081/all-modules',
        dataType: 'application/json',
        complete: function(data){
            alert(data)
        },
        success: function(data){
            alert(data)
        }

Он возвращает предупреждение [object Object]. В чем здесь проблема?


person Shashika    schedule 06.03.2014    source источник
comment
Попробуйте предупредить data.status. Я не думаю, что есть проблема. Вы просто не можете предупредить объект   -  person pstenstrm    schedule 06.03.2014
comment
alert будет неявно вызывать toString для data, который будет литералом объекта (как анализируется JSON), и это значение равно [object Object]   -  person Ian    schedule 06.03.2014
comment
stackoverflow.com/questions/1036028 /   -  person Bangalore    schedule 06.03.2014
comment
Используйте JSON.stringify(data) при отображении в предупреждении, поскольку предупреждение не может отображать объект. Он преобразует объект в строковый формат.   -  person Purushotham    schedule 06.03.2014
comment
Это уже объект JSON   -  person Aivan Monceller    schedule 12.05.2015


Ответы (7)


Попробуйте следующее;

var data = '{"name": "John","age": 30}';

var json = JSON.parse(data);

alert(json["name"]);
alert(json.name);

Вы также можете проверить эту ссылку: Как получить доступ к JSON объект в JavaScript

person Cybermatatu    schedule 12.05.2015

Если вы хотите увидеть все данные в объекте JSON, используйте JSON.stringify Refer здесь для более подробной информации

Надеюсь, это поможет.

person ipohfly    schedule 06.03.2014

просто console.log(data) вы увидите свой объект.

вы можете получить доступ к своему значению примерно так

data.id //will give you id

это также зависит от вас json, как вы создаете, проверьте это для объяснения

// 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 

поэтому ваш код будет таким

 $.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)
    }
})
person rajesh kakawat    schedule 06.03.2014

попробуйте console.log(), он войдет в консоль. alert не отображает объект.

 $.ajax({
    url: 'http://localhost:8081/all-modules',
    dataType: 'application/json',
    complete: function(data){
        console.log(data)
    },
    success: function(data){
        console.log(data)
    }
person Pratik Bhoir    schedule 06.03.2014

я думаю, вы просто печатаете объект. Попробуйте что-то вроде этого

$.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);
    }
person kamesh    schedule 06.03.2014


Попробуйте data[0].status;. Ваши данные теперь находятся в объекте. В console.log(data) вы можете видеть, что

person John Priestakos    schedule 07.05.2014