javascript - 如何通过Javascript解析没有密钥的多维JSON数据?
问题描述
我有有效的 JSON 数据:
{
"bitcoin": [
"-0.47",
"-0.46",
"-0.42"
],
"maker": [
"8.29",
"8.29",
"6.89"
]
}
如何从没有密钥的此类数据中获取值?
编辑:在@kolzar 和@FZs 的帮助下,我简单地通过以下代码管理它:
for (var key in obj) {
console.log(key + obj[key]);
}
解决方案
在数组 ( [...]
) 中,键是数字。
在 JS 中,您可以通过两种方式访问属性:
container[key_as_expression]
或者container.key_as_identifier
由于 JS 标识符不允许标识符以数字开头,因此只能通过第一种方式访问数字键:
data={
"bitcoin": [
"-0.47",
"-0.46",
"-0.42"
],
"maker": [
"8.29",
"8.29",
"6.89"
]
}
console.log(data.bitcoin[0]) //"-0.47"
console.log(data.bitcoin[1]) //"-0.46"
由于第一种语法允许表达式,因此密钥不得硬编码:
n=0
data={
"bitcoin": [
"-0.47",
"-0.46",
"-0.42"
],
"maker": [
"8.29",
"8.29",
"6.89"
]
}
console.log(data.bitcoin[n]) //"-0.47"
console.log(data.bitcoin[n+1]) //"-0.46"
并且有很多循环,可以帮助你:
for
- 最常用的循环。要对数组的所有元素执行某些操作:data=[1,2,3,"hello","world"] for(let i=0;i<data.length;i++){ console.log(i,data[i]) }
for of
- 更简单的语法,但键不可用。例子:data=[1,2,3,"hello","world"] for(let x of data){ console.log(x) }
array.forEach
- 对数组的所有元素执行函数:data=[1,2,3,"hello","world"] data.forEach(function(x,i){console.log(i,x)})
还有更多类似的选择!
推荐阅读
- scala - 根据存在/不存在的元素将 2 个序列分成三个
- javascript - asp.net 更改当前 URL 中的参数以获取 href
- shell - 如何执行 Unix shell 脚本?
- java - 将文件与日期关联以查询特定日期范围,Java(Android)?
- javascript - Javascript有效地将数组复制到索引处的另一个数组中
- python - 阅读级别脚本在某些站点上发送错误“IndexError:字符串索引超出范围”
- python - 如何从不同的子目录导入文件?
- asp.net-core - Url.Action 和 LinkGenerator 返回不同的 URL
- java - java项目中文本加解密的编写方法
- python - 如何将数据框字典条目拆分/分解为多行