2016-12-25 43 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/