请问json如何追加内容,并且修改,和删除操作。急~
var str = '[{"name":"aa","age":"23"},{"name":"bb","age":"24"},{"name":"cc","age":"25"}]';
//var json = eval('('+str+')');
现在要求内容追加新的数据:{"name":"dd","age":"25"}
变成新的json数据如下所示:
var str = '[{"name":"aa","age":"23"},{"name":"bb","age":"24"},{"name":"cc","age":"25"},{"name":"dd","age":"25"}]';
求解内容JSON内容追加!~
最好还能实现修改和删除
假设name的aa已经存在,则把aa的age=该成新的值,也就是或,相同的数据,可以修改指定的键值。
注意:如果值不存在,则才会出现内容追加!
求删除数据。
假设要删除name=aa的这条记录
求如何实现!~ 展开
json追加内容并且修改和删除操作示例:
1、增加:
myObj.user='我是新增的用户-小明';
x +="<h1>增加后的数据</h1>"forin();
2、修改:
myObj.name= "我的网站";
x +="<h1>修改后的数据</h1>"forin();
3、删除:
delete myObj.sites;
x +="<h1>删除后的数据</h1>"forin();
扩展资料
JS动态动态创建JSON数据字符串,并且可以删除添加修改
<script type="text/javascript">
//添加或者修改json数据
function setJson(jsonStr,name,value)
{
if(!jsonStr)jsonStr="{}";
var jsonObj = JSON.parse(jsonStr);
jsonObj[name] = value;
return JSON.stringify(jsonObj)
}
//删除数据
function deleteJson(jsonStr,name)
{
if(!jsonStr)return null;
var jsonObj = JSON.parse(jsonStr);
delete jsonObj[name];
return JSON.stringify(jsonObj)
}
//生成测试
var myjsonStr = setJson(null,"name","aaa");
alert(myjsonStr);
//添加测试
myjsonStr = setJson(myjsonStr,"age",18);
alert(myjsonStr);
//修改测试
myjsonStr = setJson(myjsonStr,"age",20);
alert(myjsonStr);
//删除测试
myjsonStr = deleteJson(myjsonStr,"age");
alert(myjsonStr);
</script>
使用方法
var str = '[{"name":"aa","age":"23"},{"name":"bb","age":"24"},{"name":"cc","age":"25"}]';
var array=JSON.parse(str);
array.push({"name":"dd","age":"25"});
//修改
var obj=array.firstOrDefault(
function(x){
return x.name=='bb';
}
);
obj.age=25;
//删除
array.delete(
function(x){
return x.name=='cc';
}
);
//转为json字符串
str=JSON.stringify(array);
js代码文件js.js
//----------
Array.prototype.firstOrDefault = function (predicate) {
var first = null;
if (typeof predicate == "undefined") {
if (this.length > 0)
first = this[0];
} else if (typeof predicate == "function") {
for (var i = 0; i < this.length; i++) {
if (predicate(this[i])) {
first = this[i];
break;
}
}
} else {
throw new Error("predicate 类型必须为function");
}
return first;
};
Array.prototype.delete = function (predicate) {
if (typeof predicate == "function") {
var obj = this.firstOrDefault(predicate);
if (obj) {
delete obj;
}
} else {
throw new Error("predicate 类型必须为function");
}
};