我希望能够使用jquery/javascript添加、删除和更新json中的元素,并在提交文件到服务器时考虑最新的json对象。
您能建议一个方法吗?我现在卡住了。
您能建议一个方法吗?我现在卡住了。
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
如前所述,您可以使用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");
});
});
在解析后,JSON数据可以直接在JavaScript中进行操作(请参见Brad对您的问题的评论)。要将更新后的数据发送回服务器,您可以使用$.post。现在,这不是解决了您的问题吗?如果不是,请更详细地解释您的问题。
response.lastUser="Tom";
直接修改JSON对象,然后将其发送回去 :) - johnhunter