JSONObject 具有以下构造函数
公共 JSONObject(地图地图){ 超级(地图);}
这意味着您不能创建 JSONObject,在构造函数中传递字符串。但是你可以使用地图
Map<String, String> map = new LinkedHashMap<>();
map.put("phonetype","N95");
map.put("cat", "WP");
JSONObject jso = new JSONObject(map);
get 方法有签名
公共 V 获取(对象密钥)
这意味着如果你想获取地图,值应该是 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