JSONLib-JsonConfig探讨
来源:互联网 发布:linux退不出vi 编辑:程序博客网 时间:2024/06/10 01:46
在使用JSONLib包的应用中,我们实际情况会考虑过滤其某些属性或格式其某些属性。那么如何实现,JSONlib包提供了一个JsonConfig类扩展结构,供开发人员按照实际情况的需要实现Bean2JSONObject的处理过程。作者写了一个处理Date格式与过滤掉其中一个属性的案例,可以参考。
另外在探讨过程中,作者发现jsonlib不能处理内部类。
package com.china;import java.util.Date; public class Teacher implements java.io.Serializable {/** * */private static final long serialVersionUID = 1L;private String name ="haibing.xiao";private int age=27 ;private Boolean sex =true ; private Date birthday =new Date(); private Date workDate =new Date(); public Date getWorkDate() {return workDate;}public void setWorkDate(Date workDate) {this.workDate = workDate;} public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public static long getSerialversionuid() {return serialVersionUID;}public Boolean getSex() {return sex;}public void setSex(Boolean sex) {this.sex = sex;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;} }package com.china; import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import net.sf.json.JSONArray;import net.sf.json.JsonConfig;import net.sf.json.processors.JsonValueProcessor;import net.sf.json.util.PropertyFilter;/** * @author haibing.xiao * @since jdk1.6 * <p> className :SimpleJSONlib ,Teacher</p> * */public class SimpleJSONlib { public static void main(String[] args) { JsonConfig jsonConfig =new JsonConfig() ; /** format classType Date return 2013-01-17*/ jsonConfig.registerJsonValueProcessor(Date.class, new JsonValueProcessor() {@Overridepublic Object processObjectValue(String key, Object value, JsonConfig arg2) {// TODO Auto-generated method stubreturn new SimpleDateFormat("yyyy-MM-dd").format(value);}@Overridepublic Object processArrayValue(Object value, JsonConfig arg1) {// TODO Auto-generated method stubreturn value;}}); /** filter filedName workDate*/jsonConfig.setJavaPropertyFilter(new PropertyFilter() {@Overridepublic boolean apply(Object source, String name, Object value) {// TODO Auto-generated method stubif("workDate".equals(name)){return true ;}return false;}}); List<Teacher> list =new ArrayList<Teacher>(); list.add(new Teacher()); list.add(new Teacher()); list.add(new Teacher()); System.out.println(JSONArray.fromObject(list.toArray(), jsonConfig).toString());} }
在使用JSONLib包的应用中,我们实际情况会考虑过滤其某些属性或格式其某些属性。那么如何实现,JSONlib包提供了一个JsonConfig类扩展结构,供开发人员按照实际情况的需要实现Bean2JSONObject的处理过程。作者写了一个处理Date格式与过滤掉其中一个属性的案例,可以参考。
另外在探讨过程中,作者发现jsonlib不能处理内部类。
package com.china;import java.util.Date; public class Teacher implements java.io.Serializable {/** * */private static final long serialVersionUID = 1L;private String name ="haibing.xiao";private int age=27 ;private Boolean sex =true ; private Date birthday =new Date(); private Date workDate =new Date(); public Date getWorkDate() {return workDate;}public void setWorkDate(Date workDate) {this.workDate = workDate;} public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public static long getSerialversionuid() {return serialVersionUID;}public Boolean getSex() {return sex;}public void setSex(Boolean sex) {this.sex = sex;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;} }package com.china; import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import net.sf.json.JSONArray;import net.sf.json.JsonConfig;import net.sf.json.processors.JsonValueProcessor;import net.sf.json.util.PropertyFilter;/** * @author haibing.xiao * @since jdk1.6 * <p> className :SimpleJSONlib ,Teacher</p> * */public class SimpleJSONlib { public static void main(String[] args) { JsonConfig jsonConfig =new JsonConfig() ; /** format classType Date return 2013-01-17*/ jsonConfig.registerJsonValueProcessor(Date.class, new JsonValueProcessor() {@Overridepublic Object processObjectValue(String key, Object value, JsonConfig arg2) {// TODO Auto-generated method stubreturn new SimpleDateFormat("yyyy-MM-dd").format(value);}@Overridepublic Object processArrayValue(Object value, JsonConfig arg1) {// TODO Auto-generated method stubreturn value;}}); /** filter filedName workDate*/jsonConfig.setJavaPropertyFilter(new PropertyFilter() {@Overridepublic boolean apply(Object source, String name, Object value) {// TODO Auto-generated method stubif("workDate".equals(name)){return true ;}return false;}}); List<Teacher> list =new ArrayList<Teacher>(); list.add(new Teacher()); list.add(new Teacher()); list.add(new Teacher()); System.out.println(JSONArray.fromObject(list.toArray(), jsonConfig).toString());} }
- JSONLib-JsonConfig探讨
- jsonlib中jsonConfig的配置
- jsonlib中jsonConfig的配置
- JsonConfig
- JsonConfig
- JsonConfig
- jsonlib使用
- jsonlib使用
- jsonConfig配置
- jsonconfig详解
- jsonConfig用法
- jsonConfig使用
- JsonLib 简单入门
- maven jsonlib下载
- jsonlib的测试使用
- JsonConfig的jsonConfig.setExcludes的用法
- jsonConfig详细使用
- JsonConfig处理日期
- WINDOWS PHONE 数据绑定笔记
- 使用 Axis2 进行 SOA 开发,第 1 部分: 了解 Axis2 基础
- 在Oracle中查询表的大小、表的占用情况和表空间的大小
- 缺省语义文件导致web应用启动报错解决方案
- 备忘:ios应用程序不允许锁屏
- JSONLib-JsonConfig探讨
- openstack各组件介绍
- sql 语句大全
- C#系统编程:用C#设计Win运用程序模板
- 使用kill向进程发送信号
- C#网络编程系列七:UDP编程补充
- 基于WIZ811MJ的Arduino网络恒温器
- android实现语音
- IT专业术语-----> RC