从 AJAX 调用中获取 JSON 对象
Posted
技术标签:
【中文标题】从 AJAX 调用中获取 JSON 对象【英文标题】:Get JSON object from AJAX call 【发布时间】:2014-04-08 16:25:46 【问题描述】:我是 AJAX
和 javascript
的新手。在我的项目中,我必须在我的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 中获取键和值?