开发者社区> 问答> 正文

fastjson bug?报错

使用SerializerFeature.WriteClassName时,如果有Set属性一定会报错:

public static class X {
	private Set<Integer> y;

	public Set<Integer> getY() {
		return y;
	}

	public void setY(Set<Integer> y) {
		this.y = y;
	}
}

X x = new X();
x.y = Sets.newHashSet(1);
JSON.parse(JSON.toJSONString(x, SrializerFeature.WriteClassName));



得到的JSON字符串是:{"@type":"X","y":Set[1]}

但最后parse的时候是:

Exception in thread "main" com.alibaba.fastjson.JSONException: syntax error, expect {, actual Set, pos 39
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:212)
at com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer.parseRest(ASMJavaBeanDeserializer.java:96)
at Fastjson_ASM_XX2_2.deserialze(Unknown Source)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:320)
at com.alibaba.fastjson.parser.DefaultJSONParser.parse(DefaultJSONParser.java:1184)
at com.alibaba.fastjson.parser.DefaultJSONParser.parse(DefaultJSONParser.java:1153)
at com.alibaba.fastjson.JSON.parse(JSON.java:102)
at com.alibaba.fastjson.JSON.parse(JSON.java:93)

这是很久之前就有的一个bug,什么时候能解决

展开
收起
爱吃鱼的程序员 2020-06-22 12:52:19 585 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    什么版本啊?<divclass="ref">

    引用来自“wenshao”的答案

    <divclass=ref_body>什么版本啊?<divclass="ref">

    引用来自“wenshao”的答案

    <divclass=ref_body>什么版本啊?

    2020-06-22 12:52:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载