自定义日期格式化,解决JSONObject.fromObject参数格式问题
发布时间:2020-12-16 18:43:22 所属栏目:百科 来源:网络整理
导读:package com.foresee.util;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.Locale;import net.sf.json.JSONArray;import net.sf.json.JSONNull;import net.sf.json.JsonConfig;import net.sf.json.p
package com.foresee.util; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Locale; import net.sf.json.JSONArray; import net.sf.json.JSONNull; import net.sf.json.JsonConfig; import net.sf.json.processors.DefaultDefaultValueProcessor; import net.sf.json.processors.JsonValueProcessor; import net.sf.json.util.JSONUtils; public class JsonDateValueProcessor implements JsonValueProcessor { private String datePattern = "yyyy-MM-dd HH:mm:ss";// 日期格式 public JsonDateValueProcessor() { super(); } // 构造函数 public JsonDateValueProcessor(String format) { super(); this.datePattern = format; } public Object processArrayValue(Object value,JsonConfig jsonConfig) { return process(value); } public Object processObjectValue(String key,Object value,JsonConfig jsonConfig) { return process(value); } private Object process(Object value) { try { if (value instanceof Date) { SimpleDateFormat sdf = new SimpleDateFormat(datePattern,Locale.UK); return sdf.format((Date) value); } // return value == null ? "" : value.toString(); return value; } catch (Exception e) { // return ""; return null; } } public String getDatePattern() { return datePattern; } public void setDatePattern(String datePaterns) { this.datePattern = datePaterns; } } x
1
package com.foresee.util;
2
3
import java.text.SimpleDateFormat;
4
import java.util.ArrayList;
5
import java.util.Date;
6
import java.util.Locale;
7
8
import net.sf.json.JSONArray;
9
import net.sf.json.JSONNull;
10
import net.sf.json.JsonConfig;
11
import net.sf.json.processors.DefaultDefaultValueProcessor;
12
import net.sf.json.processors.JsonValueProcessor;
13
import net.sf.json.util.JSONUtils;
14
15
public class JsonDateValueProcessor implements JsonValueProcessor {
16
17
private String datePattern = "yyyy-MM-dd HH:mm:ss";// 日期格式
18
19
public JsonDateValueProcessor() {
20
super();
21
}
22
23
// 构造函数
24
public JsonDateValueProcessor(String format) {
25
super();
26
this.datePattern = format;
27
}
28
29
public Object processArrayValue(Object value,JsonConfig jsonConfig) {
30
return process(value);
31
}
32
33
public Object processObjectValue(String key,Object value,JsonConfig jsonConfig) {
34
return process(value);
35
}
36
37
private Object process(Object value) {
38
try {
39
if (value instanceof Date) {
40
SimpleDateFormat sdf = new SimpleDateFormat(datePattern,Locale.UK);
41
return sdf.format((Date) value);
42
}
43
// return value == null ? "" : value.toString();
44
return value;
45
} catch (Exception e) {
46
// return "";
47
return null;
48
}
49
}
50
51
public String getDatePattern() {
52
return datePattern;
53
}
54
55
public void setDatePattern(String datePaterns) {
56
this.datePattern = datePaterns;
57
}
58
}
59
package com.foresee.util; import java.util.Date; public class User { private Date date; private Double num; private Double age; private String name; private String password; public Double getAge() { return age; } public void setAge(Double age) { this.age = age; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Double getNum() { return num; } public void setNum(Double num) { this.num = num; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public User(Date date) { super(); this.date = date; } public User() { super(); // TODO Auto-generated constructor stub } }
1
71
1
package com.foresee.util;
2
3
import java.util.Date;
4
5
public class User {
6
7
private Date date;
8
9
private Double num;
10
11
private Double age;
12
13
private String name;
14
15
private String password;
16
17
18
19
public Double getAge() {
20
return age;
21
}
22
23
public void setAge(Double age) {
24
this.age = age;
25
}
26
27
public String getPassword() {
28
return password;
29
}
30
31
public void setPassword(String password) {
32
this.password = password;
33
}
34
35
public String getName() {
36
return name;
37
}
38
39
public void setName(String name) {
40
this.name = name;
41
}
42
43
public Double getNum() {
44
return num;
45
}
46
47
public void setNum(Double num) {
48
this.num = num;
49
}
50
51
public Date getDate() {
52
return date;
53
}
54
55
public void setDate(Date date) {
56
this.date = date;
57
}
58
59
public User(Date date) {
60
super();
61
this.date = date;
62
}
63
64
public User() {
65
super();
66
// TODO Auto-generated constructor stub
67
}
68
69
70
}
71
测试
public static void main(String[] args) { ArrayList list = new ArrayList(); User user = new User(); user.setNum(new Double(0)); user.setName(null); user.setAge(null); user.setPassword(""); user.setDate(new Date()); list.add(user); JsonConfig jsonConfig = new JsonConfig(); // 设置javabean中日期转换时的格式 jsonConfig.registerJsonValueProcessor(Date.class,new JsonDateValueProcessor("yyyy-MM-dd HH:mm:ss")); jsonConfig.registerDefaultValueProcessor(Double.class,new DefaultDefaultValueProcessor(){ public Object getDefaultValue(Class type) { return JSONNull.getInstance(); } }); jsonConfig.registerDefaultValueProcessor(String.class,new DefaultDefaultValueProcessor(){ public Object getDefaultValue(Class type) { return JSONNull.getInstance(); } }); // 获取json数组 JSONArray jsonArray = JSONArray.fromObject(list,jsonConfig); System.out.println(jsonArray.toString()); }
1
26
1
public static void main(String[] args) {
2
ArrayList list = new ArrayList();
3
User user = new User();
4
user.setNum(new Double(0));
5
user.setName(null);
6
user.setAge(null);
7
user.setPassword("");
8
user.setDate(new Date());
9
list.add(user);
10
JsonConfig jsonConfig = new JsonConfig();
11
// 设置javabean中日期转换时的格式
12
jsonConfig.registerJsonValueProcessor(Date.class,new JsonDateValueProcessor("yyyy-MM-dd HH:mm:ss"));
13
jsonConfig.registerDefaultValueProcessor(Double.class,new DefaultDefaultValueProcessor(){
14
public Object getDefaultValue(Class type) {
15
? ? ?return JSONNull.getInstance();
16
}
17
});
18
jsonConfig.registerDefaultValueProcessor(String.class,new DefaultDefaultValueProcessor(){
19
public Object getDefaultValue(Class type) {
20
return JSONNull.getInstance();
21
}
22
});
23
// 获取json数组
24
JSONArray jsonArray = JSONArray.fromObject(list,jsonConfig);
25
System.out.println(jsonArray.toString());
26
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |