Jackson JSON Processor ライブラリの奇妙な動作を見つけました。これが意図的なものなのかバグなのか、興味があります。以下のコードをご覧ください。
@JsonTypeInfo(use = Id.NAME)
public class Nut {}
…</p>
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
何か見落としがありますか、それともバグレポートを提出する必要がありますか?