Android中實現JSON字串和JSON物件的轉換
json字串到json物件萬能轉換器(java實現),就一百來行程式碼,非常輕量小巧。對於一般應用場景資源消耗非常低,速度也足夠快,尤其適用於Android應用開發。
通過CommonJSONParser可以把json字串轉換為包含Map、List、String、Integer等標準Java物件的集合,具體使用方法:
CommonJSONParser commonJSONParser = new CommonJSONParser(); Map<String, Object> result = commonJSONParser.parse(jsonDataStr);
CommonJSONParser原始碼如下(主要使用“遞迴”思想):
1 import java.util.ArrayList; 2 import java.util.HashMap; 3 import java.util.Iterator; 4 import java.util.List; 5 import java.util.Map; 6 7 import org.json.JSONArray; 8 import org.json.JSONException; 9 import org.json.JSONObject; 10 11 public class CommonJSONParser { 12 13 public Map<String, Object> parse(String jsonStr) { 14 15 Map<String, Object> result = null; 16 17 if (null != jsonStr) { 18 try { 19 20 JSONObject jsonObject = new JSONObject(jsonStr); 21 result = parseJSONObject(jsonObject); 22 23 } catch (JSONException e) { 24 // TODO Auto-generated catch block 25 e.printStackTrace(); 26 } 27 } // if (null != jsonStr) 28 29 return result; 30 } 31 32 private Object parseValue(Object inputObject) throws JSONException { 33 Object outputObject = null; 34 35 if (null != inputObject) { 36 37 if (inputObject instanceof JSONArray) { 38 outputObject = parseJSONArray((JSONArray) inputObject); 39 } else if (inputObject instanceof JSONObject) { 40 outputObject = parseJSONObject((JSONObject) inputObject); 41 } else if (inputObject instanceof String || inputObject instanceof Boolean || inputObject instanceof Integer) { 42 outputObject = inputObject; 43 } 44 45 } 46 47 return outputObject; 48 } 49 50 private List<Object> parseJSONArray(JSONArray jsonArray) throws JSONException { 51 52 List<Object> valueList = null; 53 54 if (null != jsonArray) { 55 valueList = new ArrayList<Object>(); 56 57 for (int i = 0; i < jsonArray.length(); i++) { 58 Object itemObject = jsonArray.get(i); 59 if (null != itemObject) { 60 valueList.add(parseValue(itemObject)); 61 } 62 } // for (int i = 0; i < jsonArray.length(); i++) 63 } // if (null != valueStr) 64 65 return valueList; 66 } 67 68 private Map<String, Object> parseJSONObject(JSONObject jsonObject) throws JSONException { 69 70 Map<String, Object> valueObject = null; 71 if (null != jsonObject) { 72 valueObject = new HashMap<String, Object>(); 73 74 Iterator<String> keyIter = jsonObject.keys(); 75 while (keyIter.hasNext()) { 76 String keyStr = keyIter.next(); 77 Object itemObject = jsonObject.opt(keyStr); 78 if (null != itemObject) { 79 valueObject.put(keyStr, parseValue(itemObject)); 80 } // if (null != itemValueStr) 81 82 } // while (keyIter.hasNext()) 83 } // if (null != valueStr) 84 85 return valueObject; 86 } 87 }
相關文章
- json字串和json格式物件的轉換JSON字串物件
- JSON.NET框架實現C#物件和JSON字串的轉換JSON框架C#物件字串
- jquery實現將字串轉換為json格式物件jQuery字串JSON物件
- json字串與物件互相轉換JSON字串物件
- json字串和js物件之間相互轉換JSON字串物件
- js 將json字串轉換為json物件的方法解析JSON字串物件
- JavaScript:如何將JSON物件轉換成JSON字串呢JavaScriptJSON物件字串
- JSON字串轉換為物件直接量JSON字串物件
- JSON格式字串和物件之間的轉換程式碼JSON字串物件
- java json字串轉換為物件,轉換為listJavaJSON字串物件
- JS json字串轉物件、物件轉字串JSON字串物件
- Json物件與Json字串互轉JSON物件字串
- JavaScript將物件轉換為JSON格式字串JavaScript物件JSON字串
- eval()將JSON格式字串轉換為物件JSON字串物件
- JavaScript將JSON格式字串轉換為物件JavaScriptJSON字串物件
- js物件轉json字串物件JSON字串
- js把json字串轉成json物件JSON字串物件
- javascript如何將字串轉換成json格式物件JavaScript字串JSON物件
- js 將json字串轉換為json格式物件程式碼例項JSON字串物件
- fastjson: json物件,json物件陣列,javabean物件,json字串之間的相互轉化ASTJSON物件陣列JavaBean字串
- js實現字串轉JSON格式字串JSON
- 開發:隨筆記錄之 Json字串和物件的相互轉換筆記JSON字串物件
- js jquery 列印物件;json 物件轉字串jQuery物件JSON字串
- JS實現JSON物件與URL引數的相互轉換JSON物件
- eval() JSON轉換為物件JSON物件
- C#中JSON字串和Dictionary字典型別的相互轉換C#JSON字串型別
- json 物件與json 字串的區別。JSON物件字串
- json字串 轉換為陣列JSON字串陣列
- JSON字串與HashMap相互轉換JSON字串HashMap
- java物件與json物件間的相互轉換Java物件JSON
- 使用@ResponseBody物件轉json和@RequestBody進行json轉物件案例物件JSON
- js 陣列,字串,json互相轉換陣列字串JSON
- 將json字串轉換成list<T>JSON字串
- java json和物件互相裝換JavaJSON物件
- php陣列轉換為json,json又轉化為php物件。PHP陣列JSON物件
- 將json格式物件轉換為查詢字串程式碼例項JSON物件字串
- js 中的json物件和mapJSON物件
- xml字串轉JSON字串XML字串JSON