Json文件删除元素

方法1:delete

注意,该方法删除之后的元素会变为null,并非真正的删除!!!

举例:

原json:

{
   "front" : {
      "image" : [
         {
            "file" : "D:\\app\\data\\temp\\gn_image_0.jpg",
            "height" : 253,
            "width" : 190,
            "x" : 49,
            "y" : 110
         },
         {
            "file" : "D:\\app\\data\\temp\\gn_image_1.jpg",
            "height" : 60,
            "width" : 260,
            "x" : 375,
            "y" : 460
         }
      ],
      "text" : [
         {
            "b" : true,
            "data" : "姓名  卢战士",
            "font" : "宋体",
            "size" : 8,
            "x" : 260,
            "y" : 150
         }
      ]
   }
}

我们现在读取该JSON文件然后删除image第一个元素:

var fs=require("fs");
var path=require("path");
var jsonStr=fs.readFileSync(path.join(__dirname,"../1.json"));
var json=JSON.parse(jsonStr);
delete json.front.image[0];
console.log(JSON.stringify(json));

最后打印内容为:

{
    "front": {
        "image": [
            null,
            {
                "file": "D:\\app\\data\\temp\\gn_image_1.jpg",
                "height": 60,
                "width": 260,
                "x": 375,
                "y": 460
            }
        ],
        "text": [
            {
                "b": true,
                "data": "姓名  卢战士",
                "font": "宋体",
                "size": 8,
                "x": 260,
                "y": 150
            }
        ]
    }
}

方法2:使用数组的方式删除,彻底删除

JSON数据是由对象和数组数据结构组成,我们只要学会javascript中对对象和数组的删除方法即可对JSON项进行删除操作

 

用splice方法

 

这个方法很强大,可以对数组任意项进行增加,删除,替换操作

第一个参数是准备操作的数组位置,第二个参数是从操作位置开始后面的要操作的数组项数,第三个以后的就是,被替换后的内容(如果第三个参数为空就是删除)

 

 

var fs=require("fs");
var path=require("path");
var jsonStr=fs.readFileSync(path.join(__dirname,"../1.json"));
var json=JSON.parse(jsonStr);
 json.front.image.splice(0,1);
console.log(JSON.stringify(json));

 

最终打印结果:

{
    "front": {
        "image": [
            {
                "file": "D:\\app\\data\\temp\\gn_image_1.jpg",
                "height": 60,
                "width": 260,
                "x": 375,
                "y": 460
            }
        ],
        "text": [
            {
                "b": true,
                "data": "姓名  卢战士",
                "font": "宋体",
                "size": 8,
                "x": 260,
                "y": 150
            }
        ]
    }
}

 

 

 

 

 

posted @ 2019-11-06 10:27  指尖下的世界  阅读(4685)  评论(0编辑  收藏  举报
/* 看板娘 */ /*炸泡*/
/* 鼠标点击求赞文字特效 */