Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HashMap的普通Json字符串_Java_Json_Hashmap - Fatal编程技术网

Java HashMap的普通Json字符串

Java HashMap的普通Json字符串,java,json,hashmap,Java,Json,Hashmap,在将json转换为HashMap时,会出现很多问题。 我希望这对每个人都有帮助 下面的代码将直接值或值的数组转换为递归调用的函数 private static Map getMap(JSONObject object, String json) throws Exception { Map<String, Object> map = new HashMap<String, Object>(); Object jsonObject = nu

在将
json转换为HashMap
时,会出现很多问题。 我希望这对每个人都有帮助


下面的代码将直接值或值的数组转换为递归调用的函数

 private static Map getMap(JSONObject object, String json) throws Exception {
        Map<String, Object> map = new HashMap<String, Object>();
        Object jsonObject = null;

        Iterator<String> keys = object.keys();
        while (keys.hasNext()) {
            String key = keys.next();
            Object value = object.get(key);

            if (value instanceof JSONObject) {
                map.put(key, getMap((JSONObject) value, json));
                continue;
            }

         // If value is in the form of array

            if (value instanceof JSONArray) {
                JSONArray array = ((JSONArray) value);
                List list = new ArrayList();
                for (int i = 0 ; i < array.length() ; i++) {
                    jsonObject = array.get(i);
                    if (jsonObject instanceof JSONObject) {
                        list.add(getMap((JSONObject) jsonObject, json));
                    } else {
                        list.add(jsonObject);

                    }
                }
                map.put(key, list);
                continue;
            }

            map.put(key, value);
        }
        return map;
    }
private static Map getMap(JSONObject对象,字符串json)引发异常{
Map Map=newhashmap();
对象jsonObject=null;
迭代器键=object.keys();
while(keys.hasNext()){
String key=keys.next();
对象值=Object.get(键);
if(JSONObject的值实例){
put(key,getMap((JSONObject)值,json));
继续;
}
//如果值的形式为数组
if(JSONArray的值实例){
JSONArray数组=((JSONArray)值);
列表=新的ArrayList();
对于(int i=0;i
//调用方法

public static Map<String, Object> convertJsonToMap(String json) {
        Map<String, Object> map = new HashMap<String, Object>();
        JSONObject jsonObject = null;

        try {
            if (null != json) {
                jsonObject = new JSONObject(json);
                map = getMap(jsonObject, json);
            }

        } catch (Exception e) {
            throw new SystemException("Unable to read JSOn Object");
            // TODO : Handle Exception
        }
        return map;
    }
publicstaticmap-convertJsonToMap(字符串json){
Map Map=newhashmap();
JSONObject JSONObject=null;
试一试{
if(null!=json){
jsonObject=新的jsonObject(json);
map=getMap(jsonObject,json);
}
}捕获(例外e){
抛出新的SystemException(“无法读取JSOn对象”);
//TODO:处理异常
}
返回图;
}