zoukankan      html  css  js  c++  java
  • 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
                }
            ]
        }
    }
  • 相关阅读:
    EF架构~简洁关联表插入,优越的代码性能!
    基础才是重中之重~你是否真正了解TransactionScope?
    基础才是重中之重~如何整理BLL与DAL层的文件
    java Byte 和byte 差别及byte[ ]和string转换
    转: java的InputStream和OutputStream的理解
    java.awt.list java.util.list 区别
    java.util.Scanner 总结
    java .io OutputStream 与InputStream
    java 3中方法复制一个文件
    网络爬虫 简介
  • 原文地址:https://www.cnblogs.com/luzhanshi/p/11803578.html
Copyright © 2011-2022 走看看