如何在JavaScript/jQuery中操作JSON对象?

6
我希望能够使用jquery/javascript添加、删除和更新json中的元素,并在提交文件到服务器时考虑最新的json对象。
您能建议一个方法吗?我现在卡住了。
3个回答

12
我使用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


5

如前所述,您可以使用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
操作演示在这行代码中:response.lastUser="Tom"; 直接修改JSON对象,然后将其发送回去 :) - johnhunter

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接