1

在我的应用程序中,我通过 .aspx 页面的 ajax 调用获取 Json 数据

json数据格式是这样的

{
    “桌子”: [
        {
            “身份证”:911,
            “来源”:“维沙卡帕特南”,
            “dest”:“果阿”,
            “容量”:24000,
            “h1”:400,
            “h1At”:7,
            “h1Dt”:8,
            “h2”:401,
            “h2At”:9,
            “h2Dt”:9.3,
            “h3”:402,
            “h3At”:12,
            “h3Dt”:12.3,
            “h4”:403,
            “h4At”:14.3,
            “h4Dt”:15,
            “h5”:404,
            “h5At”:16,
            “h5Dt”:17,
            “h6”:405,
            “h6At”:18,
            “h6Dt”:19,
            “h7”:406,
            “h7At”:19.3,
            “h7Dt”:20,
            “h8”:407,
            “h8At”:21,
            “h8Dt”:21.3,
            “h9”:408,
            “h9At”:22,
            “h9Dt”:22.1,
            “h10”:409,
            “h10At”:23,
            “h10Dt”:24
        }
    ]
}

我在http://jsonlint.com/中检查了这种格式,它是有效的

当我试图读取这样的数据长度时,从 Javascript

for (var i = 1; i <= data.Table.length; i++)

data.Table.length返回 1 并且循环只运行一次,我不知道如何获取 json 数据中对象数组的长度,以便循环可以持续到结束。

请帮忙

4

2 回答 2

1

这是因为您的 Table 对象包含一个只有一个元素的数组。要获取您正在寻找的所有对象,请尝试以下操作:

for (var i = 1; i <= data.Table[0].length; i++)

然后你进入第一个元素 i Table ,你会得到里面的孩子的数量。

希望这可以帮助!

编辑

抱歉,这是因为对象没有长度属性。请参考 StackOverflow 上的这个线程,jQuery ajax json 响应的长度未定义且数据不正确

如果你想循环所有对象试试这个,

for (var obj in data.Table[0])
    console.log(obj) // Do something with your object
于 2013-05-02T11:43:47.923 回答
0

you need to parse the data coming from the page before you get the length of the data

by using $.parseJson() method i think

then the following url expalins the solution

Reading JSON data with jQuery

于 2013-05-02T11:50:26.667 回答