NutzCN Logo
问答 Json.fromJson不能正却处理日期
发布于 270天前 作者 enilu 295 次浏览 复制 上一个帖子 下一个帖子
标签:

json里面有个日期字符串:Jan 13, 2018 12:00:00 AM

用 Json.fromJsonAsList(CampaignType.class,json);将json直接转换为对象的时候异常了
异常信息为 无法解析日期,
请问怎么处理比较好

16 回复

可以换1.r.65-SNAPSHOT快照版, 然后在对应的属性上添加@JsonField(dataFormat="合法的日期格式")

之前使用的时候貌似不支持java8的日期, 请问这个后续版本会支持吗

哪个类?? 报个issue吧

@wendal
下面代码可以:

String date = "Jan 13, 2018 12:00:00 AM";
        SimpleDateFormat sdf = new SimpleDateFormat("MMM dd, yyyy HH:mm:ss aa", Locale.ENGLISH);
        System.out.println(sdf.parse(date));

但是我用@JsonField不可以

public class OfflineTimeType {
    private Integer flat;
    @JsonField(dataFormat = "MMM dd, yyyy HH:mm:ss aa")
    private Date time;
    setter...;
	getter...;
} 
 
Map map = new HashMap();
map.put("time","Jan 13, 2018 12:00:00 AM");
map.put("flag",1);
//报异常Caused by: java.lang.RuntimeException: Unexpect date format 'Jan 13, 2018 12:00:00 AM'
OfflineTimeType offlineTimeType = Json.fromJson(OfflineTimeType.class,Json.toJson(map));
 

换最新快照版试试

@wendal 已经是最新版的了呢1.r.65-SNAPSHOT

待我测试一下

问题出在 "Locale.ENGLISH"

已提交修改

@wendal

	@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);

              // 断言失败

	}

不是fromJson吗?

@wendal

map 转 json 字符串

但这个帖子跟你贴的没关联性,看不出关联性

@wendal
好久之前发现的, 看到这个帖子就提出来了, 不过问题确实存在

那你另外起一个帖子吧,我还不知道啥情况

添加回复
请先登陆
回到顶部