数组内的数组

所以这是事情,我有一个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 

是否有可能做这样的长度在这里检查“列表中的键”的数量有多less? 我为自己尝试过,似乎没有工作。 在我继续之前,我需要确认。 如果有人可以这样回答:)

谢谢!

不完全是。
在你的例子中 – keys键是一个Array,这意味着它没有listofkeys属性/键。

你可以做的是检查keys[0].listofkeys.length – 这将采取第一个数组在你的json对象的keys密钥和该数组上 – 它将采取listofkeys键并检查它的length

是的,可以通过使用AJAX加载外部JSON文件,然后使用JSON.parse方法将该数据加载到JavaScript对象variables:

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

OUTPUT

在这里输入图像描述

看到我的例子在这里的控制台输出:http: //zikro.gr/dbg/html/json-load/