1
我想將一個java映射序列化成json,我可以肯定使用jackson或gson。映射到JSON - 忽略特定的鍵
但是當我序列化時,我想忽略指定鍵。可能嗎?
地圖是。我沒有/希望我的Map支持POJO,因爲這些鍵非常通用,可以是任何東西。我明白如果它是一個POJO,我們可以使用Ignore註釋來實現。
我想將一個java映射序列化成json,我可以肯定使用jackson或gson。映射到JSON - 忽略特定的鍵
但是當我序列化時,我想忽略指定鍵。可能嗎?
地圖是。我沒有/希望我的Map支持POJO,因爲這些鍵非常通用,可以是任何東西。我明白如果它是一個POJO,我們可以使用Ignore註釋來實現。
您可以創建擴展HashMap
自定義類:
public class MyMap extends HashMap<String, Object> {
}
,然後註冊一個自定義序列,如:
public class MyMapSerializer extends JsonSerializer<MyMap> {
@Override
public JsonElement serialize(MyMap arg0, Type arg1, JsonSerializationContext arg2) {
JsonObject result = new JsonObject();
for (String k : arg0.keySet()) {
if (whatever your condition is) {
result.add(k, arg0.get(k));
}
}
return result;
}
}
然後,當你創建GSON對象,你需要通過將其初始化通過一個串行器的實例:
Gson gson = new GsonBuilder().registerTypeAdapter(MyMap.class, new MyMapSerializer()).create();
我看到一篇文章,也許可能是你的int他們創建了一個自定義映射序列化器。 https://stackoverflow.com/questions/30475174/serialize-hashmap-to-a-json-string-while-avoiding-certain-fields-in-java – cralfaro
也許你可以創建一個副本(或使用原件)和刪除你不感興趣的值? –