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

标签 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 作为输出

如何获得 2 作为上述数组的长度输出?

最佳答案

该对象的 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"

关于javascript - 无法在javascript中获取JSON数组的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31898938/

相关文章:

javascript - 获取 parent child 输入值时出现未定义错误

javascript - 功能组件和对象迭代

javascript - 返回要显示的内容 - 现在什么也没有出来

json - 如何使用 Go 标准库替换流中的字节?

javascript - DOM树创建

javascript - 如何根据给定值在Javascript中分配动态范围值?

javascript - 使用 .attr() 方法的 JavaScript switch 语句的行为

javascript - 无法获取 Firefox 的 html 元素的高度和宽度

javascript - 如何在 gatsby 中添加外部 Javascript?

javascript - jQuery - 无法让滚动条在 Colorbox 中显示