Ajax调用中的数据长度

时间:2013-05-02 11:38:05

标签: javascript asp.net ajax json

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

json数据格式是这样的

{
    "Table": [
        {
            "id": 911,
            "source": "Vishakhapatnam",
            "dest": "Goa",
            "capacity": 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数据中获取对象数组的长度,以便循环可以继续直到结束。

请帮助

2 个答案:

答案 0 :(得分:1)

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

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

然后你进入我表中的第一个元素,你将得到里面的孩子数。

希望这有帮助!

修改

抱歉,那是因为对象没有长度属性。请参阅StackOverflow上的这个主题,jQuery ajax json response has length undefined and incorrect data

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

for (var obj in data.Table[0])
    console.log(obj) // Do something with your object

答案 1 :(得分:0)

在获得数据长度之前,您需要解析来自页面的数据

使用 $。parseJson()方法我认为

然后以下url expalins解决方案

Reading JSON data with jQuery