对象转JSONArray,JSONObject[包括对象中⽇期格式化,属性
过滤]
创建时间转换器
[java]
1. SimpleDateFormat;
2. import java.util.Date;
3. import java.util.Locale;
4.
5. import net.sf.json.JsonConfig;
6. import net.sf.json.processors.JsonValueProcessor;
7.
8.
9. public class JsonDateValueProcessor  implements JsonValueProcessor {
10. private String format ="yyyy-MM-dd hh:mm:ss";
11.
12. public JsonDateValueProcessor() {
13. super();
14.    }
15.
16. public JsonDateValueProcessor(String format) {
17. super();
18. this.format = format;
19.    }
20.
21. public Object processArrayValue(Object paramObject,
22.            JsonConfig paramJsonConfig) {
23. return process(paramObject);
24.    }
25.
26. public Object processObjectValue(String paramString, Object paramObject,
27.            JsonConfig paramJsonConfig) {
28. return process(paramObject);
29.    }
30.
31.
32. private Object process(Object value){
33. if(value instanceof Date){
34.            SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.CHINA);
35. return sdf.format(value);
36.        }
37. return value == null ? "" : String();
38.    }
39.
40.
41. }
创建对象属性过滤器,并能对对象中date格式字段进⾏字符串格式转换
[java]
1. import flect.Field;
2. import java.util.Date;
3.
4. import net.sf.json.JSONArray;
5. import net.sf.json.JSONObject;
6. import net.sf.json.JsonConfig;
7. import net.sf.json.util.PropertyFilter;
8.
9. import org.apachemons.logging.Log;
10. import org.apachemons.logging.LogFactory;
11.
12. /**
13.  * <p>Title: 保留属性</p>
14.  * <p>Description:保留JAVABEAN的指定属性</p>
15.  *
16.  */
17. public class IgnoreFieldProcessorImpl implements PropertyFilter {
18.
19.    Log log = Class());
20.
21. /**
22.      * 保留的属性名称
23.      */
24. private String[] fields;
25.
26. /**
27.      * 空参构造⽅法<br/>
28.      * 默认不忽略集合
29.      */
30. public IgnoreFieldProcessorImpl() {
31. // empty
32.    }
33.
34. /**
35.      * 构造⽅法
36.      * @param fields 保留属性名称数组
37.      */
38. public IgnoreFieldProcessorImpl(String[] fields) {
39. this.fields = fields;
40.    }
41.
42. /**
43.      * 构造⽅法
44.      * @param fields    保留属性名称数组
45.      */
46. public IgnoreFieldProcessorImpl(boolean ignoreColl, String[] fields) {
47. this.fields = fields;
48.    }
49.
50. public boolean apply(Object source, String name, Object value) {
51.        Field declaredField = null;
52.
53. // 保留设定的属性
53. // 保留设定的属性
54. if(fields != null && fields.length > 0) {
55. if(juge(fields,name)) {
56. return false;
57.            } else {
58. return true;
59.
60.            }
61.        }
62.
63. return false;
64.    }
65. /**
66.      * 保留相等的属性
67.      * @param s
68.      * @param s2
69.      * @return
70.      */
71. public boolean juge(String[] s,String s2){
72. boolean b = false;
73. for(String sl : s){
74. if(s2.equals(sl)){
75.                  b=true;
76.              }
77.          }
78. return b;
79.      }
80.
81. /**
82.      * 获取保留的属性
83.      * @param fields
84.      */
85. public String[] getFields() {
86. return fields;
87.    }
88.
89. /**
90.      * 设置保留的属性
91.      * @param fields
92.      */
93. public void setFields(String[] fields) {
94. this.fields = fields;
95.    }
96.
97. /**
98.      * 保留字段转换json 对象
99.      * @param configs 保留字段名称
100.      * @param entity 需要转换实体
101.      * @return
102.      */
103. public static JSONObject JsonConfig(String[] configs,Object entity){
104.        JsonConfig config = new JsonConfig();
105.        config.setJsonPropertyFilter(new IgnoreFieldProcessorImpl(true, configs)); // 保留的属性<span >configs</span>
106.        isterJsonValueProcessor(Date.class, new JsonDateValueProcessor()); // 将对象中的⽇期进⾏格式化
107.        JSONObject fromObject = JSONObject.fromObject(entity, config );
调⽤⽅法,
例:将exam对象转换成JSONObject并只保留需要的字段
例:将list<Course>对象转换成JSONArray并只保留Course中需要保留的字段107.java时间日期格式转换
JSONObject fromObject = JSONObject.fromObject(entity, config );  108.
return  fromObject;  109.    110.
}  111.
112.
113.
/** 114.
* 保留字段转换json 数组 115.
* @param configs 保留字段名称 116.
* @param entity 需要转换实体 117.
* @return  118.
*/  119.
public  static  JSONArray ArrayJsonConfig(String[] configs,Object entity){  120.
JsonConfig config = new  JsonConfig();  121.        config.setJsonPropertyFilter(new  IgnoreFieldProcessorImpl(true , configs)); //<span >保留的属性</span><span >configs</span>
122.        isterJsonValueProcessor(Date.class , new  JsonDateValueProcessor());
123.        JSONArray fromObject = JSONArray.fromObject(entity, config );
124.        return  fromObject;
125.    }
126.
127.
}  [java]
1. JSONObject ex = IgnoreFieldProcessorImpl.JsonConfig(new  String[]{"id","examName","examDate"}, exam);  [java]
1.
JSONArray listj=IgnoreFieldProcessorImpl.ArrayJsonConfig(new  String[]{"id","courseName","examDate","remark"}, list);  2.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。