从 AJAX 调用中获取 JSON 对象

Posted

技术标签:

【中文标题】从 AJAX 调用中获取 JSON 对象【英文标题】:Get JSON object from AJAX call 【发布时间】:2014-04-08 16:25:46 【问题描述】:

我是 AJAXjavascript 的新手。在我的项目中,我必须在我的javascript 文件中获取一个json 对象。我使用了spray-json,它向我显示了 url 中的 json 对象。 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]。这里有什么问题?

【问题讨论】:

尝试提醒data.status。我不认为有问题。你只是不能提醒一个对象 alert 将在data 上隐式调用toString,这将是一个对象字面量(JSON 的解析方式),该值为“[object Object]” ***.com/questions/1036028/… 在警报中显示时使用 JSON.stringify(data),因为警报无法显示对象。它将对象转换为字符串格式。 那已经是一个 JSON 对象了 【参考方案1】:

如果您希望查看 JSON 对象中的所有数据,请使用 JSON.stringify 更多详情请参考here

希望对您有所帮助。

【讨论】:

【参考方案2】:

试试下面的;

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

var json = JSON.parse(data);

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

您也可以查看此链接:How to access JSON object in JavaScript

【讨论】:

【参考方案3】:

试试data[0].status;。您的数据现在在一个对象中。在console.log(data) 你可以看到

【讨论】:

【参考方案4】:

data 不再是 JSON 格式,而是 Javascript Object。你不再需要使用像 jQuery.parseJSON 这样的函数了。

对于初学者来说这是一个常见的错误。

如果您想查看此 Javascript 对象,请尝试alert(JSON.stringify(data));

【讨论】:

【参考方案5】:

我认为你只是打印对象。试试这样的东西

$.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】:

只需 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)
    
)

【讨论】:

【参考方案7】:

尝试 console.log() 它将登录控制台。警报不显示对象。

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

【讨论】:

以上是关于从 AJAX 调用中获取 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章

如何从MVC5中的jquery ajax调用中获取部分视图和JSON数据?

如何使用 c# 从 ajax 中的嵌套 JSON 对象中获取值

$.ajax 从 php 获取 json_encode($arr) 之后的对象,但是如何在 jQuery 中获取键和值?

AJAX 成功调用仅从 JSON 字符串中获取一个值

从 JSON 数据中获取产品 ID 并通过 AJAX 发布

Safari错误。 Javascript ajax json对象 - 无法获取属性。对象可能不再存在