Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取JSON对象元素的数目_Javascript_Jquery_Json - Fatal编程技术网

Javascript 获取JSON对象元素的数目

Javascript 获取JSON对象元素的数目,javascript,jquery,json,Javascript,Jquery,Json,如何获取此JSON中的元素数 获取本地存储数据={ “排序表2”:{ “内容”:“示例面板2”, “列”:“3”, “面板尺寸”:“大”, “儿童”:{ “第1项——可排序表2”:{ “标题”:“提要1”, “正文”:” }, “项目2-可排序表2”:{ “标题”:“提要2”, “正文”:” }, “项目3-可排序表2”:{ “标题”:“提要3”, “正文”:” }, “项目4-可排序表2”:{ “标题”:“提要4”, “正文”:” }, “项目5-可排序表2”:{ “标题”:“提要5”, “正

如何获取此JSON中的元素数

获取本地存储数据={
“排序表2”:{
“内容”:“示例面板2”,
“列”:“3”,
“面板尺寸”:“大”,
“儿童”:{
“第1项——可排序表2”:{
“标题”:“提要1”,
“正文”:”
},
“项目2-可排序表2”:{
“标题”:“提要2”,
“正文”:”
},
“项目3-可排序表2”:{
“标题”:“提要3”,
“正文”:”
},
“项目4-可排序表2”:{
“标题”:“提要4”,
“正文”:”
},
“项目5-可排序表2”:{
“标题”:“提要5”,
“正文”:”
}
}
},
“可排序3”:{
“内容”:“示例面板3”,
“列”:“3”,
“面板尺寸”:“大”,
“儿童”:{
“项目-0-排序表3”:{
“标题”:“提要1”,
“正文”:”
},
“第1项——分类表3”:{
“标题”:“提要2”,
“正文”:”
},
“项目2-可排序的3”:{
“标题”:“提要3”,
“正文”:”
},
“第3项——可排序的第3项”:{
“标题”:“提要4”,
“正文”:”
},
“项目4-可排序的3”:{
“标题”:“提要5”,
“正文”:”
}
}
}
}
这应该返回2个项目(
sortable2
sortable3
),但返回的是
659
。我尝试过的两个步骤是:

console.log(gettingTheLocalStorageData .length); // = 659

有什么可能的解决办法吗

我得到的是什么

首先解析JSON

let parsed = JSON.parse(getLocalStoragedata)
console.log(Object.keys(parsed).length); // 2
您可以使用:


我只需要解析它就行了

增加

 gettingTheLocalStorageData = JSON.parse(gettingTheLocalStorageData); 
现在它返回正确的数字


与@Deda一样,有点迂腐,它实际上只是一个对象,不是数组,也不是JSON(JSON是一个字符串)。也就是说,我觉得你的第二次尝试很可疑<代码>控制台.log(Object.keys(getLocalStoragedata).length)肯定会返回
2
。编辑:我自己刚试过,正如预期的那样,它返回
2
;如果要计算对象中的键数,请使用object.keys(正如@TylerRoper所指出的,该行应该返回2(不过,您似乎使用了不同的变量名;“gettingTheLocalStorageData”而不是“getLocalStoragedata”?也许这就是问题所在?)这就是我运行它时得到的结果:@Anish正如Daniel所指出的,您的变量名与上面的示例不匹配。如果您实际运行问题中包含的代码,并且只运行该代码(
console.log(Object.keys(getLocalStoragedata.length);
),它返回
2
。可能您的问题出在其他地方,或者您只是使用了错误的变量名,但如果没有更多信息,我们无法真正帮助您解决我们(或您的问题)遇到的问题可以复制。@TylerRoper这是一个复制错误。我修复了命名。所有这些都应该命名为gettingTheLocalStorageData。对此很抱歉。如果你查看图像,我仍然得到相同的结果
getLocalStoragedata
不是JSON,它是一个对象(它已经被解析)我相信OP这么说是说错了。也就是说,你的第二行似乎是正确的解决方案。OP说他们已经尝试过了,但我有怀疑。OP在问题中说他们尝试了
Object.keys()
已经说过了。也就是说,我不会否决你的答案,因为我认为它是正确的,OP在某个地方犯了一个错误。所以你做错了什么。请看:@clayton.carmo非常感谢你的帮助。我将重写并重新尝试两件事:首先,这意味着
获取本地存储数据的价值不是什么您在问题中提供了答案。其次,Deda在一小时前提交了答案-您应该接受它。@TylerRoper我如何接受答案?我也没有看到选项。我查看了,但找不到答案,因此我将答案张贴在他答案的左侧,应该有一个复选标记图标。单击此按钮将接受答案。有关详细信息,请参阅n、 看看这个:
Object.keys(getLocalStoragedata).length
 gettingTheLocalStorageData = JSON.parse(gettingTheLocalStorageData);