一个解析Json文件的java实现

   Json的应用我不再都说,不过怎么吧一个Json转化为一个 List 或者 map呢?

这是我自己实现的一个小工具可以实现转化

View Code
public class JsonToos {

    private static JsonToos toos;

    private JsonToos() {
    };

    // 单例
    public static JsonToos getInstance() {
        if (toos == null)
            toos = new JsonToos();
        return toos;
    }

    // 调用入口
    public Object Json2Obj(String jsonText) {
        if (jsonText.startsWith("{") && jsonText.endsWith("}")) {
            return Json2Map(jsonText);
        } else if (jsonText.startsWith("[") && jsonText.endsWith("]")) {
            return Json2List(jsonText);
        }
        return null;
    }

    // Json to map
    private Map Json2Map(String jsonText) {
        JSONObject json = JSONObject.fromObject(jsonText);// .fromObject(m);
        Iterator keys = json.keys();
        Map map = new HashMap();
        while (keys.hasNext()) {
            String key = (String) keys.next();
            String value = json.get(key).toString();
            if (value.startsWith("{") && value.endsWith("}")) {
                map.put(key, Json2Map(value));
            } else if (value.startsWith("[") && value.endsWith("]")) {
                map.put(key, Json2List(jsonText));
            } else {
                map.put(key, value);
            }

        }
        return map;
    }

    // Json to List
    private List Json2List(String jsonText) {
        List lst = new ArrayList();
        if (jsonText.startsWith("{") && jsonText.endsWith("}")) {
            lst.add(Json2Map(jsonText));
        } else if (jsonText.startsWith("[") && jsonText.endsWith("]")) {
            String[] str = jsonText.substring(1, jsonText.length() - 1).split(
                    "\",\"");
            for (int i = 0; i < str.length; i++)
                lst.add(str[i]);
        } else {
            lst.add(jsonText);
        }

        return lst;
    }

    public String Map2Json(Map m) {
        JSONObject json1 = JSONObject.fromObject(m);
        return json1.toString();
    }
}

不过在使用的时候需要使用外部的jar包!

commons-beanutils-1.8.3.jar 

commons-collections-3.2.1.jar

commons-lang.jar

commons-logging.jar

ezmorph-1.0.6.jar

json-lib-2.4-jdk15.jar

可以在这里下载

https://files.cnblogs.com/roadking/Json.rar

posted @ 2012-05-07 13:39  嘎空间  阅读(955)  评论(0编辑  收藏  举报