本文目录一览:
- 1、java ObjectMapper 将对象转换成json字符串问题
- 2、java对象 转json 对象参数为null 的参数丢失
- 3、java中json对象有没有方法可以把null值转换成空字符串
java ObjectMapper 将对象转换成json字符串问题
先给你一个正确的方法:
1,把bean里面的get方法上面的格式去掉
我的代码如下:
private Timestamp time;
public Timestamp getTime() {
return time;
}
public void setTime(Timestamp time) {
this.time = time;
}
测试方法:
public static void main(String[] args) throws JsonProcessingException, ParseException {
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
AccountInfo accountInfo = new AccountInfo();
accountInfo.setTime(timestamp);
ObjectMapper mapper = new ObjectMapper();
mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"));
String s = mapper.writeValueAsString(accountInfo);
System.out.println(s);
long time = DateUtils.parseDate("1987-06-04 00:00:001","yyyy-MM-dd hh:mm:ss").getTime();
String date = DateUtils.parseDate("1987-06-04 00:00:01","yyyy-MM-dd hh:mm:ss").toString();
System.out.println(date);
timestamp = Timestamp.valueOf("1987-06-04 00:00:00");
System.out.println(timestamp);
accountInfo = new AccountInfo();
accountInfo.setTime(timestamp);
mapper = new ObjectMapper();
mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"));
s = mapper.writeValueAsString(accountInfo);
System.out.println(s);
}
输出结果:
{"openId":null,"token":null,"ip":null,"account":null,"phone":null,"email":null,"platformType":0,"time":"2018-10-16 01:27:16"}
Thu Jun 04 00:00:01 CDT 1987
1987-06-04 00:00:00.0
{"openId":null,"token":null,"ip":null,"account":null,"phone":null,"email":null,"platformType":0,"time":"1987-06-04 12:00:00"}
不过这里有一个小问题,因为你是使用的yyyy-MM-dd hh:mm:ss 格式,而hh表示按12小时计时,所以1987-06-04 00:00:00会在json中表示为1987-06-04 12:00:00,你可以换成yyyy-MM-dd HH:mm:ss按24小时计进即可。
java对象 转json 对象参数为null 的参数丢失
String str = JSONObject.toJSONString(jsonMap,SerializerFeature.WriteMapNullValue);
说明一下:WriteMapNullValue——–是否输出值为null的字段,默认为false
java中json对象有没有方法可以把null值转换成空字符串
1.SerializerFeature.WriteMapNullValue 是否输出值为null的字段,默认为false
也就是说有null时会输出而不是忽略(默认策略是忽略,所以看不到为null的字段)
2.WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null
注意是字段是字段是字段,而不是json.put("key",null),所以用它时,字段为null的可以转换为空字符串。
3.如果让输出的json中所有为null的字符串都变成空字符串,最简单的做法就是加一个值过滤器,这样就避免了有的字段为null,有的字段为空字符的现象。