java处理json数据

如果要处理json数据首先要确定使用的json包是那个,常用的有json-lib-x.jar和jack-json-x.jar。我这里的实例代码为json-lib-2.4-jdk15.jar。

json-lib-2.4-jdk15.jar里的json数据,被定义为了两种形式:JSONObject对象的形式,值的存取方式为<Key,value>的方式,与map是相似的。JSONArray对象形式,值的存取方式为序列,与list相似,根据下标去取值。

只要理解了JSONArray和JSONObject在处理json数据就没有问题了。无非是json数据复杂了,来回转换JSONArray和JSONObject两钟格式取值。这个比较麻烦。

实例:

// 声明一个List<map<String,String>>对象
        List<Map<String, String>> list = new ArrayList<Map<String, String>>();
        /* 循环添加map数据 */
        for (int i = 0; i < 10; i++) {
            Map<String, String> map = new HashMap<String, String>();
            map.put("Key", "name" + i);
            map.put("age", "" + i);
            list.add(map);
        }
        // 将list对象转换为json
        JSONArray json = JSONArray.fromObject(list);
        // 定义模拟的json数据
        String strs = "{"hospitall":[{"name":"第一医院","phone":"112212"},{"name":"第二医院","phone":"112212"}]}";
        System.out.println(json);
        // 将字符串,转换为jsonObject对象
        JSONObject jsono = JSONObject.fromObject(strs);
        // 获得json里的hospitall的值也就是一个json集合
        JSONArray jsonh = jsono.getJSONArray("hospitall");
        for (int i = 0; i < jsonh.size(); i++) {
            // 通过json集合获取没有一个jsonObject对象,这时候jsonObject就跟map相识了,
            // 同意是根据键值对处理数据
            JSONObject jsonn = jsonh.getJSONObject(i);

            System.out.println(jsonn.get("name"));
            System.out.println(jsonn.get("phone"));
        }

输出结果如下:

原文地址:https://www.cnblogs.com/gynbk/p/6930415.html