如何在javascript中更新json的属性值

时间:2013-05-28 06:21:35

标签: javascript json

我有一个如下所示的json文件:

{
 "@id": "2",
 "@samsid": "d7058536c89b46c0b58117eff64372f7",
 "@productname": "Another paid for",
 "@downloaddate": "2013-05-28 11:37:12Z",
 "@downloadlocation":
    "2AFoGZVJpFHzspQD9UoE2C4VFYc8idiO4ebaRx4uEvtG+79DjkOUjJQjp9lJdSk54KIbFqzr",
 "@upgradeavailable": "2wECEpVJpFHS",
 "@downlaodstatus": "3QGf15VJpFFrUzr6oxwoew=="
}

我想更新属性@id的值,例如(@id:2@id:4)。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

更新:既然你刚才提到你想把它弄成一个文件!您仍然可以将json设置为如下所示的变量,然后设置它的值。然后使用JSON.stringify()将其转换为字符串,然后将其写入后端的文件中。这实际上取决于系统的设计方式。


我不确定为什么,但由于你的JSON对象的密钥中有@,你必须得到并设置它们:

//assign into a variable
var x = {
"@id": "2",
"@samsid": "d7058536c89b46c0b58117eff64372f7",
"@productname": "Another paid for",
"@downloaddate": "2013-05-28 11:37:12Z",
"@downloadlocation":
   "2AFoGZVJpFHzspQD9UoE2C4VFYc8idiO4ebaRx4uEvtG+79DjkOUjJQjp9lJdSk54KIbFqzr",
"@upgradeavailable": "2wECEpVJpFHS",
"@downlaodstatus": "3QGf15VJpFFrUzr6oxwoew=="
};
alert(x["@id"]); //shows 2
x["@id"] = 4
alert(x["@id"]);//shows 4

看一个工作小提琴:http://jsfiddle.net/jPa6n/

答案 1 :(得分:0)

如果你使用javascript和一些库尝试这样的东西(我使用jQuery,因为它很受欢迎)

var a = JSON.parse('{"@id": "2","@samsid": "d7058536c89b46c0b58117eff64372f7","@productname": "Another paid for","@downloaddate": "2013-05-28 11:37:12Z","@downloadlocation": "2AFoGZVJpFHzspQD9UoE2C4VFYc8idiO4ebaRx4uEvtG+79DjkOUjJQjp9lJdSk54KIbFqzr","@upgradeavailable": "2wECEpVJpFHS","@downlaodstatus": "3QGf15VJpFFrUzr6oxwoew=="}');
a['@id'] = 4;
var b = JSON.stringify(a);