JSONFormatter(JSONObject转成Map, JSONArray转成List, 中间递归调用类)

前端之家收集整理的这篇文章主要介绍了JSONFormatter(JSONObject转成Map, JSONArray转成List, 中间递归调用类)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Tips:
JSONFormatter,定义一个toMap方法(将JSONObject转换为Map),一个toList方法(将JSONArray转化为List)。相互之间通过递归调用,实现最终SONObject 和 JSONArray的最终转化

Code:
  1. package com.cisco.cmse.du.util;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.Iterator;
  6. import java.util.List;
  7. import java.util.Map;
  8.  
  9. import org.codehaus.jettison.json.JSONArray;
  10. import org.codehaus.jettison.json.JSONException;
  11. import org.codehaus.jettison.json.JSONObject;
  12.  
  13.  
  14. public final class JSONFormatter {
  15.  
  16. /**
  17. * JSONObject转为map
  18. * @param object json对象
  19. * @return 转化后的Map
  20. */
  21. public static Map<String,Object> toMap(JSONObject object){
  22. Map<String,Object> map = new HashMap<String,Object>();
  23.  
  24. for (Iterator<?> it = object.keys(); it.hasNext();) {
  25. String key = (String)it.next();
  26. Object value;
  27. try {
  28. value = object.get(key);
  29. if(value instanceof JSONArray) {
  30. value = toList((JSONArray) value);
  31. }
  32.  
  33. else if(value instanceof JSONObject) {
  34. value = toMap((JSONObject) value);
  35. }
  36. map.put(key,value);
  37. } catch (JSONException e) {
  38. e.printStackTrace();
  39. }
  40. }
  41.  
  42. return map;
  43. }
  44.  
  45. /**
  46. * JSONArray转为List
  47. * @param array json数组
  48. * @return 转化后的List
  49. */
  50. public static List<Object> toList(JSONArray array){
  51. List<Object> list = new ArrayList<Object>();
  52. for(int i = 0; i < array.length(); i++) {
  53. Object value;
  54. try {
  55. value = array.get(i);
  56. if(value instanceof JSONArray) {
  57. value = toList((JSONArray) value);
  58. }
  59.  
  60. else if(value instanceof JSONObject) {
  61. value = toMap((JSONObject) value);
  62. }
  63. list.add(value);
  64. } catch (JSONException e) {
  65. // TODO Auto-generated catch block
  66. e.printStackTrace();
  67. }
  68. }
  69. return list;
  70. }
  71. }





Code:

猜你在找的Json相关文章