@JsonSerialize注释不适用于杰克逊的吸气剂

时间:2018-12-21 18:23:00

标签: jackson2 jsonserializer jackson-databind

这是我要尝试的包装类

public class Wrapper {

    @JsonSerialize(contentUsing = ItemRowSerializer.class)
    private Map<String, ItemRow> foo;

    public Wrapper(Map<String, ItemRow> fooz) {
        foo = new HashMap<>(fooz);
    }

    public Map<String, ItemRow> getFoo() {
        return foo;
    }

    public void setFoo(Map<String, ItemRow> foo) {
        this.foo = foo;
    }
}

这是我的测试方式

 Wrapper w = new Wrapper(map);
 final String jsonResult = mapper.writeValueAsString(w);
 System.out.println(jsonResult);

我看到应用了序列化程序,但是我有foo作为根节点,这不是我想要的。

所以我将注释从字段移到了吸气剂

@JsonSerialize(contentUsing = ItemRowSerializer.class)
public Map<String, ItemRow> getFoo(){
  return foo;
}

现在我在写映射器时叫吸气剂

 Wrapper w = new Wrapper(map);
    final String jsonResult = mapper.writeValueAsString(w.getFoo());
    System.out.println(jsonResult);

我再也看不到foo元素,但是也没有应用序列化器。

0 个答案:

没有答案