2016-12-25 101 views
2

所以這裏是東西,我有一個json文件,裏面有一個數組,裏面有另一個數組。數組內部的數組

這是json文件的外觀。

{ 
    "keys": [ 
     { 
      "game": "Counter-Strike: Global Offensive", 
      "price": "5", 
      "listofkeys": ["5555w-55w12-2d131","231a1-213x1-31313"] 
     }, 
     { 
      "game": "Crusader Kings II", 
      "price": "20", 
      "listofkeys": ["5555w-55w12-2d131","231a1-213x1-31313"] 
     } 
    ] 
} 

我的問題是,是否有可能這樣做?是否有可能對我來說,利用這一點,再後來做這樣的事情:

(filename.json).keys.listofkeys.length 

是否有可能做到。長度一樣,在這裏檢查有多少個陣列中有「鍵列表」 ??? ??? 我已經爲自己嘗試過了,它似乎沒有工作。在我繼續之前,我需要對此進行確認。如果有人可以這樣回答:)

謝謝!

+0

,因爲它是你仍然需要使用分度值的數組。這可以很容易地在瀏覽器中檢查。創建你的頁面,包含json文件,使用開發工具你可以在代碼上設置斷點或使用控制檯來測試你的代碼。 – jeff

回答

1

不完全。
在你的例子中 - keys鍵是一個數組,這意味着它沒有listofkeys屬性/鍵。

你可以做的是檢查keys[0].listofkeys.length - 這會第一陣列中的JSON對象的keys鍵和陣列上 - 它會採取 listofkeys鍵,檢查它的length

+0

問題是,是我得到這個錯誤: –

+0

undefined:6 「listofkeys」:[「5555w-55w12-2d131」,「231a1-213x1-31313」] ^ –

+0

你有一個語法錯誤。您在json文件中的「price」:「5」後錯過逗號,它應該是「price」:「5」,「 – Dekel

1

是的,它可以通過使用AJAX來加載外部JSON文件,然後使用JSON.parse方法到數據加載到一個javascript對象變量:

data.json

{ 
    "keys": [ 
     { 
      "game": "Counter-Strike: Global Offensive", 
      "price": "5", 
      "listofkeys": ["5555w-55w12-2d131","231a1-213x1-31313"] 
     }, 
     { 
      "game": "Crusader Kings II", 
      "price": "20", 
      "listofkeys": ["5555w-55w12-2d131","231a1-213x1-31313"] 
     } 
    ] 
} 

Javascript加載JSON文件

function loadJSON(callback) { 

    var xobj = new XMLHttpRequest(); 
     xobj.overrideMimeType("application/json"); 
    xobj.open('GET', 'data.json', true); 
    xobj.onreadystatechange = function() { 
      if (xobj.readyState == 4 && xobj.status == "200") { 
      // Required use of an anonymous callback as .open will NOT return a value but simply returns undefined in asynchronous mode 
      callback(xobj.responseText); 
      } 
    }; 
    xobj.send(null); 
} 

function check_json_data(json_data) { 

    var obj = JSON.parse(json_data); 

    console.log(obj); 
    console.log("Keys length:", obj.keys.length); 
    console.log("List of keys 1 length:", obj.keys[0].listofkeys.length); 
    console.log("List of keys 2 length:", obj.keys[1].listofkeys.length); 
} 

loadJSON(check_json_data); 

輸出

enter image description here

見我的例子中的控制檯輸出這裏:http://zikro.gr/dbg/html/json-load/