簡體   English   中英

傑克遜:地圖 <String, Object> 序列化和反序列化

[英]Jackson: Map<String, Object> serialization and deserialization

是否可以序列化/反序列化Map<String, Object> ,其中對象的類型(映射值)將由其鍵確定。

{
    "number":42,
    "desc":"something really important",
    "location":{
        "x":9999,
        "y":9999,
        "wkid":9999
    },
    "shape":{
        "type":"polyline",
        "data":"dGhpcyBnZW9tZXRyeSBpcyBmYWtlIDpQ"
    }
}

在這種特殊情況下,我知道desc始終是stringlocationshape -第三方類(我為它們提供了序列化器和反序列化器),其他值則是盒裝基元。

可以和傑克遜做類似的事情嗎? 可以通過使用MapSerializer / MapDeserializer完成此操作嗎? (我找不到任何示例)

是的,有可能。 我建議您嘗試jsonschema2pojo 只需粘貼JSON並選擇源類型JSON

是的,可以做到。 具有另一個包含一對Map<String, Class>的結構,並將第一個結構的鍵名( Map<String, Object> )鏈接到第二個結構。

例如

Map map = new HashMap<String, Object>();`

map.put("desc", "something really important");

Map deser = new HashMap<String, Class>();

deser.put("desc", StringDeserializer.class);

您還可以使用deser<String, String> ,其中值將是類名,然后只需按名稱http://www.tutorialspoint.com/java/lang/class_forname_loader.htm加載類即可

暫無
暫無

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

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