所以这就是问题,我有一个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; ?????? 我已经为自己试过了,它似乎没有起作用。在我继续之前,我需要对此进行确认。如果有人可以这么善意回答:)
谢谢!
答案 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);
<强>输出强>
请在此处查看我的示例的控制台输出:http://zikro.gr/dbg/html/json-load/