无法在javascript中获取JSON数组的长度

时间:2015-08-08 21:50:38

标签: javascript jquery json

我已经阅读了有关在javascript中访问json数组的其他问题,但在我的情况下没有任何帮助。 我在jquery ajax调用中收到了以下json。

{"jList":"[{\"added_by\":\"Ani\",\"description\":\"example description.\",\"start_date
\":\"2014-10-10\",\"mark\":255,\"id\":975},{\"added_by\":\"Ani\",\"description
\":\"example description..\",\"start_date\":\"2014-10-10\",\"mark\":255,\"id\":980
}]"}

接收方法 -

$.getJSON("url",
                {var : Val},
                function(data){
                    here...

我想要的只是计算这个数组中的JSON对象。在上面的例子中,我想要一个长度输出为2,但我没有得到它。 我试过以下的事情 -

  1. data.jList.length - <给200像输出
  2. Object.keys(data).length - <给200像输出
  3. Object.keys(data['jList']).length - <给1输出
  4. 如何获得2作为上述数组的长度输出?

2 个答案:

答案 0 :(得分:1)

对象的jList属性只是一个字符串,因此您需要使用JSON.parse()将其转换为Javascript对象。



// Dummy of your "data" variable
var data = {"jList":"[{\"added_by\":\"Ani\",\"description\":\"example description.\",\"start_date \":\"2014-10-10\",\"mark\":255,\"id\":975},{\"added_by\":\"Ani\",\"description \":\"example description..\",\"start_date\":\"2014-10-10\",\"mark\":255,\"id\":980 }]"};

var myList = JSON.parse(data.jList);
alert(myList.length); // Alerts "2"




答案 1 :(得分:0)

"jList":"[{\"added_by\":\"...不是一个数组,它是一个字符串(如果您更改了问题,那么它的长度为456或200)。

删除周围的双引号,使其成为一个数组。然后你将Array.prototype.length