如何在从Jquery Ajax返回的页面中显示此JSON字符串?

时间:2011-10-11 21:52:20

标签: jquery json

我将以下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字符串中显示属性值?

谢谢

2 个答案:

答案 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)

这里有几件看似错误的事情

  1. 你正在做msg.d,但是返回的json对象没有名为'd'的属性。

  2. 将msg.d传入BuildTable函数后,尝试将其用作数组。

  3. 你声明一个Person对象,然后尝试用小写引用“person”,这也是不正确的,因为js区分大小写。

  4. 更新:

    function BuildTable(msg) {
            var person = jQuery.parseJSON( msg );
            var table = '<table><tr><td>' + person.firstName + '<td><tr></table>'
            $("#temp").html(table);
        };