成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android開發:Json字符串到Json對象萬能解析器

移動開發 Android
本文介紹了如何用Java實現Json字符串到Json對象萬能解析器,即通過CommonJSONParser可以把json字符串轉換為包含Map、List、String、Integer等標準Java對象的集合。

json字符串到json對象萬能轉換器(java實現),就一百來行代碼,非常輕量小巧。對于一般應用場景資源消耗非常低,速度也足夠快,尤其適用于Android應用開發。

通過CommonJSONParser可以把json字符串轉換為包含Map、List、String、Integer等標準Java對象的集合,具體使用方法:

  CommonJSONParser commonJSONParser = new CommonJSONParser();
  Map<String, Object> result = commonJSONParser.parse(jsonDataStr);

CommonJSONParser源代碼如下(主要使用“遞歸”思想):

  1. 1 import java.util.ArrayList; 
  2.  2 import java.util.HashMap; 
  3.  3 import java.util.Iterator; 
  4.  4 import java.util.List; 
  5.  5 import java.util.Map; 
  6.  6  
  7.  7 import org.json.JSONArray; 
  8.  8 import org.json.JSONException; 
  9.  9 import org.json.JSONObject; 
  10. 10  
  11. 11 public class CommonJSONParser { 
  12. 12  
  13. 13     public Map<String, Object> parse(String jsonStr) { 
  14. 14  
  15. 15         Map<String, Object> result = null
  16. 16  
  17. 17         if (null != jsonStr) { 
  18. 18             try { 
  19. 19  
  20. 20                 JSONObject jsonObject = new JSONObject(jsonStr); 
  21. 21                 result = parseJSONObject(jsonObject); 
  22. 22  
  23. 23             } catch (JSONException e) { 
  24. 24                 // TODO Auto-generated catch block 
  25. 25                 e.printStackTrace(); 
  26. 26             } 
  27. 27         } // if (null != jsonStr) 
  28. 28  
  29. 29         return result; 
  30. 30     } 
  31. 31  
  32. 32     private Object parseValue(Object inputObject) throws JSONException { 
  33. 33         Object outputObject = null
  34. 34  
  35. 35         if (null != inputObject) { 
  36. 36  
  37. 37             if (inputObject instanceof JSONArray) { 
  38. 38                 outputObject = parseJSONArray((JSONArray) inputObject); 
  39. 39             } else if (inputObject instanceof JSONObject) { 
  40. 40                 outputObject = parseJSONObject((JSONObject) inputObject); 
  41. 41             } else if (inputObject instanceof String || inputObject instanceof Boolean || inputObject instanceof Integer) { 
  42. 42                 outputObject = inputObject; 
  43. 43             } 
  44. 44  
  45. 45         } 
  46. 46  
  47. 47         return outputObject; 
  48. 48     } 
  49. 49  
  50. 50     private List<Object> parseJSONArray(JSONArray jsonArray) throws JSONException { 
  51. 51  
  52. 52         List<Object> valueList = null
  53. 53  
  54. 54         if (null != jsonArray) { 
  55. 55             valueList = new ArrayList<Object>(); 
  56. 56  
  57. 57             for (int i = 0; i < jsonArray.length(); i++) { 
  58. 58                 Object itemObject = jsonArray.get(i); 
  59. 59                 if (null != itemObject) { 
  60. 60                     valueList.add(parseValue(itemObject)); 
  61. 61                 } 
  62. 62             } // for (int i = 0; i < jsonArray.length(); i++) 
  63. 63         } // if (null != valueStr) 
  64. 64  
  65. 65         return valueList; 
  66. 66     } 
  67. 67  
  68. 68     private Map<String, Object> parseJSONObject(JSONObject jsonObject) throws JSONException { 
  69. 69  
  70. 70         Map<String, Object> valueObject = null
  71. 71         if (null != jsonObject) { 
  72. 72             valueObject = new HashMap<String, Object>(); 
  73. 73  
  74. 74             Iterator<String> keyIter = jsonObject.keys(); 
  75. 75             while (keyIter.hasNext()) { 
  76. 76                 String keyStr = keyIter.next(); 
  77. 77                 Object itemObject = jsonObject.opt(keyStr); 
  78. 78                 if (null != itemObject) { 
  79. 79                     valueObject.put(keyStr, parseValue(itemObject)); 
  80. 80                 } // if (null != itemValueStr) 
  81. 81  
  82. 82             } // while (keyIter.hasNext()) 
  83. 83         } // if (null != valueStr) 
  84. 84  
  85. 85         return valueObject; 
  86. 86     } 
  87. 87 } 

 

責任編輯:閆佳明 來源: cnblogs
相關推薦

2020-12-02 10:13:45

JacksonJDK解析器

2022-02-14 13:58:32

操作系統JSON格式鴻蒙

2023-05-05 07:49:07

GolangJSON格式

2009-03-23 14:14:33

JSONAJAXJavaScript

2013-02-20 15:29:00

JSONAndroid開發

2010-01-07 16:55:06

JSON字符串

2015-07-02 10:37:32

C#Json字符串類代碼

2010-01-07 16:37:04

JSON解析器

2022-12-22 14:56:44

2017-03-21 07:54:43

解碼器軟件程序

2010-01-07 17:24:31

JSON 解析器

2022-06-28 08:17:10

JSON性能反射

2023-12-30 13:33:36

Python解析器JSON

2016-11-24 12:07:42

Android萬能圓角ImageView

2024-02-19 15:38:08

JsonPython字符串

2010-01-06 13:32:27

JSON數據

2020-11-13 08:14:28

JavaScript

2010-07-06 10:07:10

jQueryJSON

2024-02-22 08:06:45

JSON策略解析器

2023-06-21 00:10:17

JSONWeb服務器JavaScript
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产男女视频网站 | 国产成人精品久久二区二区91 | 欧美一区不卡 | 色屁屁在线观看 | 综合国产 | 国产精品视频网 | 91精品国产日韩91久久久久久 | 天天操天天摸天天干 | 成人高清在线 | 久久夜色精品国产 | 秋霞影院一区二区 | 久久久国产一区二区三区 | 成人激情视频在线播放 | 91精品国产美女在线观看 | 国产精品久久久久久 | 国产精品爱久久久久久久 | 欧美色综合一区二区三区 | 黄色在线播放视频 | 国产精品国产精品 | 国产精品一区二区av | 国产精品久久久久久久久婷婷 | www.99热这里只有精品 | 日韩av在线不卡 | 精品无码久久久久久久动漫 | 不卡一区| 国产一区二区三区四区区 | 日本三级在线视频 | 精品自拍视频 | 国产色婷婷久久99精品91 | 婷婷91 | 欧美日韩成人在线观看 | 精品欧美乱码久久久久久1区2区 | 亚洲成人福利在线观看 | 亚洲精品中文字幕av | 久久1区| 免费在线观看av | 搞黄网站在线观看 | 国产98色在线 | 日韩 | 综合激情av | 亚洲电影一区 | av中文字幕网站 |