我将以下JSON字符串返回到页面。
{ “名字”: “鲍勃”, “姓氏”: “门”, “部”: “技术”}
我想在页面中显示属性值,但我遇到了问题。
这是我的jquery ajax
function BuildTable(msg) {
var Person = msg[0];
var table = '<table><tr><td>' + person.firstName + '<td><tr></table>'
$("#temp").html(table);
};
$.ajax({
type: "POST",
url: "../test/json.aspx/testjson",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
BuildTable(msg.d);
}
});
虽然我在Firebug中看到了JSON字符串,但它返回“undefined”。 我可以使用“msg”而不是“Person.firstName”
返回JSON字符串如何在JSON字符串中显示属性值?
谢谢
答案 0 :(得分:0)
您的JSON不代表javascript数组,因此您不应该尝试获取给定索引处的元素,而是直接使用该对象的属性:
function BuildTable(msg) {
var table = '<table><tr><td>' + msg.firstName + '<td><tr></table>'
$("#temp").html(table);
}
此外,您的JSON对象似乎没有.d
属性,因此您可以直接将对象传递给BuildTable函数:
BuildTable(msg);
一群人看起来像这样:
[ {"firstName":"Bob","lastName":"Gates","department":"Tech"},
{"firstName":"John","lastName":"Gates","department":"HR"} ]
现在您可以访问msg[0].firstName
,...
答案 1 :(得分:0)
这里有几件看似错误的事情
你正在做msg.d,但是返回的json对象没有名为'd'的属性。
将msg.d传入BuildTable函数后,尝试将其用作数组。
你声明一个Person对象,然后尝试用小写引用“person”,这也是不正确的,因为js区分大小写。
更新:
function BuildTable(msg) {
var person = jQuery.parseJSON( msg );
var table = '<table><tr><td>' + person.firstName + '<td><tr></table>'
$("#temp").html(table);
};