繁体   English   中英

使用javascript从json获取字段和值

[英]get field and value from json using javascript

现在我的json是这样的

{
"1": "a",
"2": "b",
"3": "c",
}

从此,我将获得这样的价值

[
{
 "id": 1,
"value": "a"
},
{
 "id": 2,
"value": "b"
},
{
 "id": 3,
"value": "c"
},
]

我尝试使用 JSON.parse() 但出现意外令牌错误。 我怎样才能做到这一点?

var data = '{ "1": "a", "2": "b", "3": "c"}';

var parsedData = JSON.parse(data);

var arr = [];

for(item in parsedData) {
    arr.push({
        "id": parseInt(item),
        "value": parsedData[item]
    });
};

console.log(arr);

在这里,我们可以创建一个随机的 JSON 对象,如果您注意到,最后一个值没有尾随逗号。 在 JSON 中,不能有尾随逗号,否则会出错。 您也不必在 JSON 中将数字放在双引号中。 我不确定这是否就是您的数据的格式,但您不需要这样做。 去掉尾随逗号后,您应该能够调用 JSON.parse() 并将数据存储在 JavaScript 对象中。 之后,我们可以遍历有效对象并将值推送到数组。 由于您在 JSON 对象中的数字周围有双引号,因此我将它们解析为整数,这就是您试图在最终输出中实现的效果。 我还要强调您的数据不是 JSON,但它看起来就像一个 JSON 对象。 我们不知道您是从 JSON 文件中获取这些数据,还是手动添加它,但如果您手动添加它,则需要将其设为有效的 JSON 字符串,就像我上面所说的那样。

我猜问题是最后一个逗号:

{
  "1": "a",
  "2": "b",
  "3": "c",//<===
}

JSON 不允许尾随逗号。

let a =
{
    "1": "a",
    "2": "b",
    "3": "c",
}
console.log(typeof a)

当我打印 JSON 对象的类型时,它显示“对象”。

JSON.parse() 仅用于字符串类型。

我尝试了以下代码。

let a = '{"1": "a", "2": "b", "3": "c"}'
let b = JSON.parse(a)
console.log(JSON.stringify(b))

没关系解析。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM