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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值