我有一些Web服务接收通过jquery方法发送的JSON数据。 但我需要在发送此数据之前编辑对象。有没有办法将jSON对象解析为javascript中的简单对象,修改它然后再次解析为JSON。或者更新这个JSON对象而不解析它?
答案 0 :(得分:6)
从JSON字符串转到JavaScript对象:JSON.parse
或$.parseJSON
如果您正在使用jQuery并且关注与旧浏览器的兼容性。
从JavaScript对象转到JSON字符串:JSON.stringify
。
如果我已经这样做了var myData = JSON.stringify({oJson:{data1:1}});然后我想更新那个信息设置data1 = 2,最好的方法是什么?
var myData = JSON.stringify({ oJson:{data1 :1}});
// later...
parsedData = JSON.parse(myData);
parsedData.oJson.data1 = 2;
myData = JSON.stringify(parsedData);
更好的是,如果在对字符串进行字符串化之前保存对象的引用,则根本不需要解析JSON:
var obj = { oJson:{data1 :1}};
var myData = JSON.stringify(obj);
// later...
obj.oJson.data1 = 2;
myData = JSON.stringify(obj);
答案 1 :(得分:3)
var parsed = JSON.parse('{"a": 1}');
parsed.b = 2;
var string = JSON.stringify(parsed);
//string is: '{"a":1,"b":2}'
答案 2 :(得分:0)
我认为以下内容应该有效...
//Convert your JSON object into a JavaScript object
var myObject = JSON.parse(json);
//You can then manipulate the JavaScript object like any other
myObject.SomeValue = "new";
//Then you can convert back to a JSON formatted string
json = JSON.stringify(myObject);
答案 3 :(得分:0)
由于JSON是一个JavaScript对象,您可以使用JavaScript操作它。
答案 4 :(得分:0)
你可以做这样的事情来获得一个javascript对象:
var jsObject = JSON.parse(jsonString);
然后您可以修改jsObject
并将其转换回JSON.stringify
的JSON字符串。
此page有更多相关信息。