使用javascript计算json中的值

时间:2016-03-26 06:01:30

标签: javascript json

我是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。

我可以请一些。感谢

5 个答案:

答案 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");