如何在javascripts / jquery中操作json对象?

时间:2011-03-07 05:33:50

标签: javascript jquery json

我想使用jquery / javascript在json中添加删除更新元素,并且当向服务器提交文件时想要考虑最新的json对象。

你能建议我接近吗?

3 个答案:

答案 0 :(得分:10)

我使用JSON.parse和JSON.stringify来操作。

json_flat = '{"page":"1","total":"2","ids":[{"id":"3085"},{"id":"3086"}]}'; // your flat json    
json_object = JSON.parse(json_flat); //convert to an object

//Manipulation
json_object.page = "6"; //change values
delete json_object.total; //delete a value

json_flat = JSON.stringify(json_object); //convert back to flat

编辑:修正了一些拼写错误:JSFiddle

答案 1 :(得分:4)

如前所述,您可以使用jQuery的json函数来编辑对象。让我用一些代码演示你如何做到这一点:

让我们来看看这个JSON对象:

{
 "people":[
     {"name":"Bob","score":9},
     {"name":"Joe","score":6},
     {"name":"Tom","score":7}
  ],
 "projects":[
     {"id":2347,"entries":5},
     {"id":8563,"entries":3}
  ],
 "lastUser":"Bob"
}

现在,假设您的服务器将其存储为平面JSON文件...我们要做的是使用jQuery的ajax方法将其加载到客户端,并使用回调进行编辑。操作对象后,我们(为了演示目的)立即将其发送回服务器端脚本,这可能会覆盖当前的平面文件:

$.getJSON(/*path to JSON file here*/,function(response){
    response.lastUser="Tom"; //This is where the sample manipulation occurs.
    $.post(/* path to server-side script*/,response,function(){
      alert("Object Saved");
    });
});

希望有助于理解所涉及的模式!

答案 2 :(得分:0)

解析后可以在javascript中直接操作JSON数据。 (见布拉德对你问题的评论)。要将更新的数据发送回服务器,您可以使用$ .post。现在,这不是解决你的问题吗?如果没有,请更详细地解释您的问题。