如何通过Javascript解析没有键的多维JSON数据?

时间:2019-02-04 12:49:24

标签: 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]);
}

3 个答案:

答案 0 :(得分:1)

在数组(char)中,键是数字。
在JS中,您可以通过两种方式访问​​属性:

  • [...]
  • container[key_as_expression]

由于JS标识符不允许以数字开头的标识符,因此只能通过第一种方式访问​​数字键:

container.key_as_identifier

由于第一种语法允许使用表达式,因此密钥不能硬编码:

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

还有更多类似的选择!

答案 1 :(得分:1)

var obj = {
 "bitcoin": [
    "-0.47",
    "-0.46",
    "-0.42"
 ],
 "maker": [
    "8.29",
    "8.29",
    "6.89"
 ]
}

for (var key in obj) {
  for (var i = 0; i< obj[key].length; i++) {
    console.log(obj[key][i]);
  }
}

我不知道你想要什么。告诉我。

答案 2 :(得分:-1)

bitcoinmaker是数组,因此其中的项没有键。

const obj = {
 "bitcoin": [
    "-0.47",
    "-0.46",
    "-0.42"
 ],
 "maker": [
    "8.29",
    "8.29",
    "6.89"
 ]
}

要获取值:

var bitcoinItems = obj.bitcoin;
var firstBitcoin = bitcoinItems[0];