我已经阅读了有关在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,但我没有得到它。 我试过以下的事情 -
data.jList.length
- <给200像输出Object.keys(data).length
- <给200像输出Object.keys(data['jList']).length
- <给1输出如何获得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
。