我发现了Jackson JSON处理库的一些奇怪行为,我想知道这是故意的还是一个错误。请看下面的代码:
@JsonTypeInfo(use = Id.NAME)
public class Nut {}
…
ObjectMapper mapper = new ObjectMapper();
Nut nut = new Nut();
Object object = new Nut();
Nut[] nuts = new Nut[] { new Nut() };
Object[] objects = new Object[] { new Nut() };
System.out.println(mapper.writeValueAsString(nut));
System.out.println(mapper.writeValueAsString(object));
System.out.println(mapper.writeValueAsString(nuts));
System.out.println(mapper.writeValueAsString(objects));
输出:
{"@type":"Nut"}
{"@type":"Nut"}
[{"@type":"Nut"}]
[{}]
我期望(并希望)的是以下内容:
{"@type":"Nut"}
{"@type":"Nut"}
[{"@type":"Nut"}]
[{"@type":"Nut"}] // <<< type information included
我有遗漏吗,还是应该提交一个错误报告?
java.lang.Object
条目的类型信息(或其他无法或不想注释的类组)。 - StaxMan