@Test
public void LocalData() throws Exception {
LocalDate now = LocalDate.now();
HashMap<String, Object> 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);
}