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());
    }
}

输出结果如下所示:

原文地址:https://www.cnblogs.com/longshiyVip/p/4607788.html