【问题标题】:How do I convert java.lang.String to java.util.LinkedHashMap如何将 java.lang.String 转换为 java.util.LinkedHashMap
【发布时间】:2019-02-05 16:51:10
【问题描述】:

我将java.lang.String 转换为or.simple.json.JSONObject。现在我无法将其转换为 HashMap。

org.json.JSONObject jso = new org.json.JSONObject("{"phonetype":"N95","cat":"WP"}");        
LinkedHashMap h = (LinkedHashMap) jso.get("phonetype");
System.out.println(h);

我收到一个错误:

“java.lang.String 无法转换为 java.util.LinkedHashMap”

【问题讨论】:

标签: java json spring


【解决方案1】:
  1. JSONObject 有以下构造函数

    public JSONObject(地图地图) { 超级(地图); }

这意味着你不能创建 JSONObject,在构造函数中传递字符串。但是你可以使用地图

Map<String, String> map = new LinkedHashMap<>();
    map.put("phonetype","N95");
    map.put("cat", "WP");
    JSONObject jso = new JSONObject(map);
  1. get 方法有签名

    public V get(对象键)

这意味着如果要获取地图,则值应为 Map generic。例如

        Map<String, String> map = new LinkedHashMap<>();
    map.put("phonetype","N95");
    map.put("cat", "WP");

    Map<String, Map> toConstructor = new LinkedHashMap() {{
        put("map", map);
    }};
    JSONObject jso = new JSONObject(toConstructor);
    LinkedHashMap h = (LinkedHashMap) jso.get("map");
    System.out.println(h);

在您的情况下,您尝试将 String 转换为 LinkedHashMap,因此引发了 ClassCastException

【讨论】:

    猜你喜欢
    • 2021-04-22
    • 2015-04-30
    • 2019-05-17
    • 2022-01-03
    • 2013-09-07
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    相关资源
    最近更新 更多