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

原创粉丝点击