加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

自定义日期格式化,解决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
 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读