查了百度和谷歌,发现在JavaScript中对Json的增,改,查的资料比较多,但删除操作的基本上没有.
因此,本人采用了一个比较笨的方法实现了Json的删除操作.以期能够抛砖引玉...谢谢!!<script type="text/javascript">
//根据索引值删除数组中指定的数据
function del(index, dataArray){
var len=dataArray.length;
for(var i=0;i<len;i=i+1){
if(i==(index-1)){
for(var j=i+1;j<len;j=j+1){
//当前索引值后的数据都向前移
dataArray[j-1]=dataArray[j];
}

//移完之后,自身长度减1
dataArray.length--;
}
}
} var data=[{
name:'111',
email:'[email protected]'
 },{
name:'222',
email:'[email protected]'
 },{
name:'333',
email:'[email protected]'
 }];

del(1,data); //删除第一条之后则第一条为222,第二条为333
del(1,data); //此时再删除第一条(name为222),则第一条为333
//特别说明:del方法中的第二个参数是一个数组,因此相当于是传引用

alert("length:"+data.length); //删除2项后应该只为1了
alert("name:"+data[0].email);  //显示为[email protected]
alert("email:"+data[1].name); //调用非法(会显示为空或不是对象的错误提示)
</script>
在下已经把砖扔出来了,剩下的就看大家的了...

解决方案 »

  1.   

    补充:1).上述JS代码中只需要放入到html页面中即可测试....
    2).关于del函数中并未做下标检查操作.
      

  2.   

    这是数组的增删吧.不是JSON的.只是数组存的是独立的JSON对象.
      

  3.   

    delete就好了吧?
    var j={n:'showbo'};
    alert(j.n)
    delete j.n
    alert(j.n)var js=[{n:'showbo'},{n:'showbo'}];
    alert(js[0].n)
    delete js[0].n;
    alert(js[0].n)
      

  4.   

    http://blog.csdn.net/maximus_zhang/archive/2008/05/29/2494590.aspx
    json的基本操作。
    - -·
      

  5.   

    LZ确实就是在删除数组元素, 而且删除的方法也.. 应该用两个slice加一个concat来操作,效率会高点
    json其实就是对象, 删除他里面的东西就是 delete jsonObject.member
      

  6.   

    这跟JSON有什么关系,JSON是JS对象表示法,说到底也是String对象,对字符串的删除,添加?
      

  7.   


    这位爷, 你typeof一个json对象看看他到底是object还是string还是什么..
      

  8.   

    splice()方法
    好像可以
      

  9.   


    delete只能value对象,但是key还是一样存在。比如
    var aa = {a:"aaa",b:"bbb"};
    delete aa[b]只能删掉value“bbb”,而key b 还是存在于aa中
      

  10.   

    delete只能value对象,但是key还是一样存在。比如
    var aa = {a:"aaa",b:"bbb"};
    delete aa[b]只能删掉value“bbb”,而key b 还是存在于aa中。
    另外,楼主的做法是数组删除,只是数组的元素是json对象而已,跟json删除一点关系都没有。数组删除用splice就可以了,根本不用这么麻烦。