0

Jackson 是否有一种更简单的方法来使用 Annotation 将带有列表的 java 对象反序列化为元素?

而不是这个

{
[{id: 1, name: 'a'},{id: 2, name: 'b'}]
}

我要这个

{
   "1": {name: 'a'},
   "2": {name: 'b'}
}
4

1 回答 1

1

我使用自定义序列化程序来做到这一点

 public static class CustomListSerializer extends StdSerializer<List> {

    public CustomListSerializer() {
        this(null);
    }

    public CustomListSerializer(Class<List> t) {
        super(t);
    }

    @Override
    public void serialize(
            List list,
            JsonGenerator generator,
            SerializerProvider provider)
            throws IOException, JsonProcessingException {
        generator.writeStartObject();
        int index = 1;
        for (Object item : list) {
            generator.writeObjectField(String.valueOf(index), item);
            index++;
        }
        generator.writeEndObject();
    }
}
于 2017-07-09T13:44:31.690 回答