[英]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.