从json文件反序列化HashMap

问题描述 投票:0回答:1

我正在使用GSON对JSON文件中的HashMap进行序列化和反序列化。一切似乎都正常,但是当我尝试访问地图元素时,出现此异常

java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to org.itemalert.model.Alert

这是我从文件中读取的JSON字符串序列化和反序列化HashMap的方式

public static <K, V> String serializeMap(HashMap map) {
        return getGson().toJson(map, new TypeToken<Map<K, V>>(){}.getType());
    }

public static <K, V> HashMap<K, V> deserializeMap(String json) {
        return new GsonBuilder().create().fromJson(json, new TypeToken<Map<K, V>>(){}.getType());
    }

这是我要读取的json文件

{
  "minecraft:diamond_pickaxe": {
    "ENABLED": true,
    "DURABILITY": 100,
    "TYPE": "SOUND"
  },
  "minecraft:iron_sword": {
    "ENABLED": true,
    "DURABILITY": 1,
    "TYPE": "HOTBAR"
  },
  "minecraft:diamond_sword": {
    "ENABLED": true,
    "DURABILITY": 150,
    "TYPE": "CHAT"
  }
}

我在这里想念什么?

java hashmap gson
1个回答
0
投票

您已经看过此页面了吗?https://www.baeldung.com/gson-json-to-map在那里您可以找到多种将json字符串转换为Map的可能性。并且如果那也不起作用,则使json字符串适合一行。我曾经遇到过类似的问题,可以通过执行此操作来解决。

© www.soinside.com 2019 - 2024. All rights reserved.