Node.js从二维JSON数组中获取行
Node.js take row from 2 dimensional JSON array
我有二维JSON数组。我可以从第一维度获取数据,如data["dimension-1"],但我不能从第二维度获取数据:data["dimension-1"]["dimension-2"]。从数组的第二个维度取单行的正确方法是什么?
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
您有一个对象,其属性也是数组或对象的混合。如果您试图提取数据属性(即数组)的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"
}
]
}
]
}
二维JSON数组如下所示:
[
["a", "b", "c"],
["d", "e", "f"],
["g", "h", "i"]
]
假设您想访问第二列中的最后一列。即"f",那么您需要通过编号而不是名称来访问它。即:
data[1][2]
编辑:
简而言之,我原来的答案是正确的。您的二维数组可以通过索引进行访问。
然而,现在知道你的数据格式,我建议你:
使用库(例如lodash)为您提供简单而富有表现力的方法来查询数据
或者创建自己的函数。例如:
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()
}
祝你好运!
相关文章:
- 为DataTables aoColumnDefs创建JavaScript数组(JSON格式)
- 使用 Javascript 将行添加到数组 json
- PHP数组JSON编码和该对象在ExtJs中解码
- 数组json转换为数组json
- 将Blob文本转换为Javascript中的数组/JSON对象
- 如何合并这些数组/json 对象
- 尝试从数组 JSON 键中删除引号
- JavaScript 中的数组 JSON
- 在数组 JSON 格式的 JavaScript 变量末尾添加新地址
- 如何访问这个Javascript数组(JSON对象?)
- rails传递记录数组(JSON)
- 按值提取对象/数组json vs数组
- 获取具有子数组json值的数组的值
- Object对象数组Json.字符串数组的字符串化
- 如何在Ext js 4.1中过滤数组json
- PHP -多维数组Json
- 正在分析数组Json以选择Tag
- 试图将字符串数据转换为数值数据,将数据放入数组的数组(Json)
- 从数组json、javascript中的specf值中删除引号
- 使用JavaScript或jQuery读取数组JSON