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")); }
输出结果如下:
将一些逻辑问题使用代码实现