簡體   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