2016-03-26 64 views
2

在JSON值我是新來的JavaScript,我想這算JSON字符串的值:計數使用javascript

{ 
    "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,它應該是2,因爲我們有2個文件。

我可以請一些。謝謝

+0

'propertyNames.name.length' - 算'name'場不'files'領域,你是 –

+0

的可能的複製[?獲取JSON對象上的項目總數] (http://stackoverflow.com/questions/13782698/get-total-number-of-items-on-json-object) –

+0

從文件中獲取數組,然後檢查數組的長度 – Newinjava

回答

4

你想要的東西,你必須做像下面

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) 
+0

謝謝大家 –

0

你的json對象在根級別只有1個鍵。即「文件」

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"] 
+0

我想讀其餘的,因爲文件是數組。 –

0

DhruvPathak所需的輸出是正確的 - 你的解決方案將返回1,因爲有在根層只有1次關鍵的JSON對象。通過使用嵌套for循環

$("#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"); 

你可以找到在JSON對象的任何圖層屬性的數量:

如果你想指望鍵在較低層的數量,你可以這樣做。

希望這會有所幫助!

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