标签:
我们通常对一个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()); } }
输出结果如下所示:
标签:
原文地址:http://www.cnblogs.com/longshiyVip/p/4607788.html