JSONLib-JsonConfig探讨
发布时间:2020-12-16 19:24:42 所属栏目:百科 来源:网络整理
导读:在使用JSONLib包的应用中,我们实际情况会考虑过滤其某些属性或格式其某些属性。那么如何实现,JSONlib包提供了一个JsonConfig类扩展结构,供开发人员按照实际情况的需要实现Bean2JSONObject的处理过程。作者写了一个处理Date格式与过滤掉其中一个属性的案例
在使用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() { @Override public Object processObjectValue(String key,Object value,JsonConfig arg2) { // TODO Auto-generated method stub return new SimpleDateFormat("yyyy-MM-dd").format(value); } @Override public Object processArrayValue(Object value,JsonConfig arg1) { // TODO Auto-generated method stub return value; } }); /** filter filedName workDate*/ jsonConfig.setJavaPropertyFilter(new PropertyFilter() { @Override public boolean apply(Object source,String name,Object value) { // TODO Auto-generated method stub if("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()); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |