数组内部的数组

时间:2016-12-25 01:36:17

标签: javascript json node.js

所以这就是问题,我有一个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

是否可以像这样执行.length来检查"键列表中的数量是多少?#34; ?????? 我已经为自己试过了,它似乎没有起作用。在我继续之前,我需要对此进行确认。如果有人可以这么善意回答:)

谢谢!

2 个答案:

答案 0 :(得分:1)

不完全。
在您的示例中 - keys[0].listofkeys.length键是一个数组,这意味着它没有keys属性/键。

你可以做的是检查listofkeys - 这将采用json-object的length键和该阵列上的第一个数组 - 它将采用 snackbar密钥并检查 <RelativeLayout android:layout_width="match_parent" android:layout_height="50dp" android:layout_alignParentBottom="true" android:background="@android:color/black" android:layout_alignParentStart="true"> <ImageView android:id="@+id/image" android:src="@drawable/image" android:layout_width="50dp" android:layout_height="50dp"/> <TextView android:id="@+id/email" android:textSize="25sp" android:textColor="@android:color/white" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Email" android:layout_alignParentBottom="true" android:layout_toEndOf="@+id/image" /> <TextView android:id="@+id/name" android:textSize="25sp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@android:color/white" android:text="Name" android:layout_alignParentTop="true" android:layout_toEndOf="@+id/image" /> </RelativeLayout>

答案 1 :(得分: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"]
        }
    ]
}

加载JSON文件的Javascript

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/