我是json和ajax的新手,这是我的第一个例子可以帮助我解决这个问题。
$.ajax({
type: "GET",
url: "ajs/index",
dataType: "JSON",
success: function(data) {
var obj = JSON.parse(data);
$("#result").html(obj.name);
}
});
数据输出的格式为:
[Object {id=10, name="ss", title="ss", content="h", ...}, Object {id=12, name="lo", title="gi", content="c", ...}, Object {id=13, name="lo", title="gi", content="c", ...}, Object {id=14, name="lo", title="gi", content="c", ...}, Object {id=15, name="n", title="m", content="m", ...}]
obj的输出(解析后)的格式为:
[{"id":10,"name":"ss","title":"ss","content":"h","created_at":"2014-07-07T10:07:02.398Z","updated_at":"2014-07-07T10:07:02.398Z"}]{"id":12,"name":"lo","title":"gi","content":"c","created_at":"2014-07-08T05:26:05.816Z","updated_at":"2014-07-08T05:26:05.816Z"}
当我使用 obj.name 时,它不会显示任何数据,如何显示我的所有数据。
答案 0 :(得分:1)
数据中的前导[
表示数组:
[{"id":10,"name":"ss","title":"ss","content":"h","created_at":"2014-07-07T10:07:02.398Z","updated_at":"2014-07-07T10:07:02.398Z"},{"id":12,"name":"lo","title":"gi","content":"c","created_at":"2014-07-08T05:26:05.816Z","updated_at":"2014-07-08T05:26:05.816Z"}]
换句话说,obj
是一个包含多个对象的数组。每个对象都有参数id
,name
,title
等等。
因此,您想要访问obj[0].name
,obj[1].name
等,而不仅仅是obj.name
。
注意:您在问题中提供的解析后数据中存在拼写错误。它看起来应该是我上面的内容。如果您仍有问题,请在评论中告诉我。
答案 1 :(得分:0)
我会使用便捷方法
$.getJSON('/someurl',function(jsonReturnedFromServer){
});
您可能需要调试它以确保从服务器获取有效的json
答案 2 :(得分:0)
您可以做的一件事是使用Chrome开发人员工具在代码中设置断点,以获得响应并将其设置为变量。此时,Chrome有一个可用于查看对象和执行javascript的控制台。这种情况非常方便。
看起来数据会以列表形式返回,因此您可能希望执行此类操作。
for(var i = 0; i < data.length; i++) {
var name = data[i].name;
// you can manipulate the DOM here with the name
}