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