java8 time to json_Json.toJson不能正确处理Java8LocalDate/LocalDateTime

@Test

public void LocalData() throws Exception {

LocalDate now = LocalDate.now();

HashMap map = new HashMap<>();

map.put("now", now);

String json = Json.toJson(now);

System.out.println(json);

// {} 打印结果

JSONAssert.assertJsonEquals(String.format("{now:%s}", now.toString()), json);

// 断言失败

}

调试了代码发现在org.nutz.json.impl.JsonRenderImpl中的这段代码:

// 日期时间

else if (mr.isDateTimeLike()) {

boolean flag = true;

if (obj instanceof Date) {

String _val = doDateFormat((Date)obj, null);

if (_val != null) {

string2Json(_val);

flag = false;

}

}

其中isDateTimeLike()并未对java8API进行判断

/**

* @return 当前对象是否在表示日期或时间

*/

public boolean isDateTimeLike() {

return Calendar.class.isAssignableFrom(klass)

|| java.util.Date.class.isAssignableFrom(klass)

|| java.sql.Date.class.isAssignableFrom(klass)

|| java.sql.Time.class.isAssignableFrom(klass);

}


版权声明:本文为weixin_42498585原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。