java - <String, String> HashMap 中的整数对象

标签 java json hashmap

  1. 创建一个 (String, Object) hashMap 并放入不同类型的值。
  2. 将 hashmap 序列化为 json 字符串,然后转换回 (String, String) 的 hashmap

当我尝试获取键“key2”的值时,它会抛出一个异常,提示“线程“main”中的异常 java.lang.ClassCastException:java.lang.Integer 无法转换为 java.lang.String” .

有什么好的方法可以解释一下吗?这是否意味着即使我有一个 (String, String) 映射,其中的值也不是必需的 String?

对于任何困惑,我们深表歉意。如果有不清楚的地方请告诉我。

Map<String, Object> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", 99);
map.put("key3", new Date());


JsonUtil jsonUtil = new JsonUtil();

String s = jsonUtil.toJson(map);

HashMap<String, String> newMap = jsonUtil.fromJson(s, HashMap.class);

String value = newMap.get("key2");

最佳答案

在map中,键“key2”的值为99,它是一个整数。异常可能是在倒数第二行而不是最后一行中引发的。我不完全确定为什么要序列化然后立即反序列化,但如果您只想将 99 作为像“99”这样的字符串,则执行此操作的方法是:

String value = String.valueOf(map.get("key2"));

在这种情况下,序列化和反序列化是不必要的。

更好的是,如果您只想要 Map<String, String>在整个过程中,你可以这样做:

Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", String.valueOf(99));
map.put(new Date().toString());

关于java - <String, String> HashMap 中的整数对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42264846/

相关文章:

javascript - 如何将json url显示为html?

java - 将 WAR 部署到实时服务器时出现问题(Springboot+Thymeleaf/CentOs)

java - HSQ Hibernate 更新问题

java - 通过网络传输 java.lang.reflect.Proxy

java - 使用 Hibernate 持久保存一个对象

java - 使用 gson 从巨大的 json 文件中获取 3 个第一个 json 对象

java - 如何在json字符串java中的数字之间留一个空格?

java - 在 Apache Camel 中访问拆分 entrySet 的主体

list - Scala HashMap列表: simpler default?

java - hashmaps get 函数的问题