zoukankan      html  css  js  c++  java
  • json学习系列(3)-JSONObject的过滤设置

    我们通常对一个json串和java对象进行互转时,经常会有选择性的过滤掉一些属性值。例如下面的实体类:

    package com.pcitc.json;
    
    /**
     * Person实体类
     * 
     * @Description
     * @author admin
     * @created 2015年6月29日 下午4:08:40
     * @version
     * @history
     * @see
     */
    public class Person {
        private String name;
        private String address;
        private String sex;
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    }

    如果我想过滤address属性怎么办?现在提供二种解决方法来实现对Person实体类的address属性的过滤。

    方法一:实现JSONString接口

    依然使用上面的Person实体类,让它实现JSONString接口,并重写JSONString接口的toJSONString()方法。如下:

    package com.pcitc.json;
    
    import net.sf.json.JSONString;
    
    /**
     * 实现JSONString Person实体类
     * 
     * @Description
     * @author admin
     * @created 2015年6月29日 下午4:18:37
     * @version
     * @history
     * @see
     */
    public class Person implements JSONString {
        private String name;
        private String address;
        private String sex;
    
        public String getAddress() {
            return address;
        }
    
        public void setAddress(String address) {
            this.address = address;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getSex() {
            return sex;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    
        /**
         * 实现过滤方法
         */
        @Override
        public String toJSONString() {
            // TODO Auto-generated method stub
            return "{"name":"" + name + "","sex":"" + sex + ""}";
        }
    }

    输出结果如下:

    方法二:设置jsonconfig实例,对包含和需要排除的属性进行添加或删除。

    实体类使用上面没有实现JSONString 接口的Person实体类。

    测试类如下:

    package com.pcitc.json;
    
    import net.sf.json.JSONObject;
    import net.sf.json.JsonConfig;
    
    public class TestPerson {
        public static void main(String args[]) {
            Person person = new Person();
            person.setName("swiftlet");
            person.setSex("men");
            person.setAddress("china");
            JsonConfig jsonConfig = new JsonConfig();
            jsonConfig.setExcludes(new String[] { "address" });
            JSONObject json = JSONObject.fromObject(person, jsonConfig);
            System.out.println(json.toString());
        }
    }

    输出结果如下所示:

  • 相关阅读:
    玩转Visual Studio Editor篇
    .Net2.0的集合操作 What i know?
    Log文件压缩
    [转]比较高效地实现从两个不同数组中提取相同部分组成新的数组(只支持Int类型) [C#]
    Stream 和 Byte[]互操作
    net 2.0 中如何在线程引发的事件中控制forms controls
    C# 操作Word文档(转)
    利用Lucene.net搜索引擎进行多条件搜索的做法
    c# 添加图片水印,可以指定水印位置+生成缩略图
    SDN第一次作业
  • 原文地址:https://www.cnblogs.com/longshiyVip/p/4607788.html
Copyright © 2011-2022 走看看