簡體   English   中英

ObjectMapper 序列化為 map

[英]ObjectMapper to Serialize as a map

我有一個內部使用 map 的 bean

class MyBean { 
    private Map<String,String> map;
    public MyBean(String key, String value) {
       map = Collections.singletonMap(key, value);
    }
}

我想對其進行序列化,因此它使用底層 map 作為其表示{"akey":"avalue"}

...
ObjectMapper mapper = new ObjectMapper();
mapperWriteValueAsString(new MyBean("akey", "avalue"));

但默認序列化返回 map 屬性

{"map":{"akey":"avalue"}}

我設法創建了一個使用 map 屬性的自定義序列化程序。 這是實現它的唯一方法嗎?

private static class MyBeanSerializer extends StdSerializer<MyBean> {

    public MyBeanSerializer() {
        this(null);
    }

    public MyBeanSerializer(Class<MyBean> t) {
        super(t);
    }

    @Override
    public void serialize(MyBean value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
        jgen.writeObject(value.map);
    }
}

嘗試 @JsonUnwrapped 注釋:

class MyBean {
  @JsonUnwrapped
  private Map<String,String> map;
  public MyBean(String key, String value) {
     map = Collections.singletonMap(key, value);
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM