我是javascript的新手,我想要计算这个json字符串的值:
{
"files": [
{
"name": "doc1.pdf",
"title": "networking",
"path": "mfpreader.comze.com\/files\/doc1.pdf"
},
{
"name": "doc2.pdf",
"title": "Armoogum",
"path": "mfpreader.comze.com\/files\/doc2.pdf"
}
]
}
json保存在 res.responseJSON.data 中。
这是我试过的代码:
$("#demo").html(JSON.stringify(res.responseJSON.data));
var jsonObject = JSON.parse(res.responseJSON.data);
var propertyNames = Object.keys(jsonObject);
alert("There are "+propertyNames.length+" properties in the object");
值为1是1.因为我们有2个文件,所以它应该是2。
我可以请一些。感谢答案 0 :(得分:5)
要获得所需的输出,您需要执行以下操作
var v={"files":[{"name":"doc1.pdf","title":"networking","path":"mfpreader.comze.com\/files\/doc1.pdf"},{"name":"doc2.pdf","title":"Armoogum","path":"mfpreader.comze.com\/files\/doc2.pdf"}]};
console.log(v.files.length)
答案 1 :(得分:1)
为变量分配
json
响应,即
var result = {"files":[{"name":"doc1.pdf","title":"networking","path":"mfpreader.comze.com/files/doc1.pdf"},{"name":"doc2.pdf","title":"Armoogum","path":"mfpreader.comze.com/files/doc2.pdf"}]}
现在计算档案
result.files.length
输出:2
答案 2 :(得分:0)
您的json对象在根级别只有一个密钥。即“文件”
jsonObject = {"files":[{"name":"doc1.pdf","title":"networking","path":"mfpreader.comze.com\/files\/doc1.pdf"},{"name":"doc2.pdf","title":"Armoogum","path":"mfpreader.comze.com\/files\/doc2.pdf"}]}
Object.keys(jsonObject)
// will return -> ["files"]
答案 3 :(得分:0)
DhruvPathak是正确的 - 您的解决方案返回1,因为JSON对象的根层只有一个密钥。
如果要计算较低层中的键数,可以执行以下操作:
$("#demo").html(JSON.stringify(res.responseJSON.data));
var jsonObject = JSON.parse(res.responseJSON.data);
var numProperties = 0;
for (item in jsonObject) {
numProperties += Object.keys(item).length;
}
alert("There are " + numProperties + " properties in the object");
您可以使用嵌套的for
循环找到JSON对象的任何层中的属性数。
希望这有帮助!
答案 4 :(得分:0)
只需使用res.responseJSON.data.files.length
$("#demo").html(JSON.stringify(res.responseJSON.data));
//var jsonObject = JSON.parse(res.responseJSON.data);
//var propertyNames = Object.keys(jsonObject);
alert("There are "+res.responseJSON.data.files.length+" properties in the object");