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 } ] } }