我有二维JSON数组。我可以从数据[" dimension-1"]获取第一维数据但是我无法从第二维获取数据,如:data [" dimension-1"] [" dimension -2&#34]。从数组的第二维获取单行的正确方法是什么?
答案 0 :(得分:1)
二维JSON数组如下所示:
[
["a", "b", "c"],
["d", "e", "f"],
["g", "h", "i"]
]
假设您要访问第二列中的最后一列。即" f",然后您需要通过数字而不是名称来访问它。即:
data[1][2]
修改强>
严格来说,我的原始答案是正确的。您的二维数组可以通过索引访问。
但是,现在知道您的数据格式,我建议:
使用库(例如 lodash )为您提供简单且富有表现力的查询数据的方法
或创建自己的功能。 e.g:
var category = getCategory(x.data, 1525, 170);
function getCategory(data, id, catId) {
return data
.filter(d => d.id === id)
.map(d => d.categories
.filter(c => c.id === catId)
.map(c => c.title)
.shift()
)
.shift()
}
祝你好运!
答案 1 :(得分:1)
data [“dimension-1”] [“dimension-2”] - 似乎是一个对象 - 因此看起来应该是这样的:
var data = {
"dimension-1" : {
"dimension-2" : 'value'
}
}
data["dimension-1"]["dimension-2"] // will display 'value'
然后你的方式就好了。
但是如果它是一个数组
var data =[[1,2], [3,4]]
然后应该像(索引是NUMERIC - 不是字符串或任何其他索引)访问它:
data[0][1] // will display 2
答案 2 :(得分:1)
您有一个对象,其属性也是数组或对象的混合。如果您尝试提取数据属性的ID(即数组),则需要选择该属性,输入数组(第一项为0),这将返回另一个对象。然后只需选择该属性。
在您的用例中,您需要以下内容: -
objectName.data[0].id
或
objectName["data"][0]["id"];
这是用于从像这样的数据(您提供的)中的数据属性中提取ID: -
var objectName = {
"total_pages": 1424,
"total_rows": 1424,
"data": [
{
"id": 1525,
"television_id": 1,
// other stuff
"categories": [
{
"id": 170,
"title": "title"
},
{
"id": 4,
"title": "message"
}
]
}
]
}