大佬教程收集整理的这篇文章主要介绍了将JsonObject转换成HashMap,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
(1)简单的键值对map
public class Utils { public static String getRaw(Context context,int RawId) { try { InputStream is = context.getresources().openRawresource(RawId); BufferedReader reader = new BufferedReader( new InputStreamReader(is)); // StringBuffer线程安全;StringBuilder线程不安全 StringBuffer sb = new StringBuffer(); for (String str = null; (str = reader.readLine()) != null;) { sb.append(str); } return sb.toString(); } catch (IOException E) { e.printStackTrace(); } return null; } public static String getAsset(Context context,String fileName) { try { InputStream is = context.getresources().getAssets().open(fileName); // StringBuffer线程安全;StringBuilder线程不安全 BufferedReader reader = new BufferedReader( new InputStreamReader(is)); StringBuffer sb = new StringBuffer(); for (String str = null; (str = reader.readLine()) != null;) { sb.append(str); } return sb.toString(); } catch (IOException E) { e.printStackTrace(); } return null; } public static void JsonObject2HashMap(JSONObject jo,List<Map<?,?>> rstList) { for (Iterator<String> keys = jo.keys(); keys.hasNext();) { try { String key1 = keys.next(); System.out.println("key1---" + key1 + "------" + jo.get(key1) + (jo.get(key1) instanceof JSONObject) + jo.get(key1) + (jo.get(key1) instanceof JSONArray)); if (jo.get(key1) instanceof JSONObject) { JsonObject2HashMap((JSONObject) jo.get(key1),rstList); conTinue; } if (jo.get(key1) instanceof JSONArray) { JsonArray2HashMap((JSONArray) jo.get(key1),rstList); conTinue; } System.out.println("key1:" + key1 + "----------jo.get(key1):" + jo.get(key1)); json2HashMap(key1,jo.get(key1),rstList); } catch (JSONException E) { e.printStackTrace(); } } } public static void JsonArray2HashMap(JSONArray joArr,?>> rstList) { for (int i = 0; i < joArr.length(); i++) { try { if (joArr.get(i) instanceof JSONObject) { JsonObject2HashMap((JSONObject) joArr.get(i),rstList); conTinue; } if (joArr.get(i) instanceof JSONArray) { JsonArray2HashMap((JSONArray) joArr.get(i),rstList); conTinue; } System.out.println("Excepton~~~~~"); } catch (JSONException E) { e.printStackTrace(); } } } public static void json2HashMap(String key,Object value,?>> rstList) { HashMap<String,Object> map = new HashMap<String,Object>(); map.put(key,value); rstList.add(map); } }
(2)完全Map深层嵌套模式形式:
/** * @param jsonData * @param rstList * @param params * @func hashmap追加字段 */ public static void JsonToHashMap(JSONObject jsonData,Map<String,Object> rstList,String... params) { try { for (Iterator<String> keyStr = jsonData.keys(); keyStr.hasNext();) { String key1 = keyStr.next().trim(); if (jsonData.get(key1) instanceof JSONObject) { HashMap<String,Object> mapObj = new HashMap<String,Object>(); JsonToHashMap((JSONObject) jsonData.get(key1),mapObj,params); rstList.put(key1,mapObj); conTinue; } if (jsonData.get(key1) instanceof JSONArray) { ArrayList<Map<String,Object>> arrayList = new ArrayList<Map<String,Object>>(); JsonToHashMap((JSONArray) jsonData.get(key1),arrayList,arrayList); conTinue; } JsonToHashMap(key1,jsonData.get(key1),rstList); } // 追加字段 if (params != null && params.length == 2) { rstList.put(params[0],params[1]); } if (params != null && params.length == 4) { rstList.put(params[0],params[1]); rstList.put(params[2],params[3]); } } catch (JSONException E) { e.printStackTrace(); } } public static void JsonToHashMap(JSONArray jsonarray,List<Map<String,Object>> rstList,String... params) { try { for (int i = 0; i < jsonarray.length(); i++) { if (jsonarray.get(i) instanceof JSONObject) { HashMap<String,Object>(); JsonToHashMap((JSONObject) jsonarray.get(i),params); rstList.add(mapObj); conTinue; } } } catch (JSONException E) { e.printStackTrace(); } } public static void JsonToHashMap(String key,Object> rstList) { key = BBSUtils.replaceBlank(key); if (value instanceof String) { rstList.put(key,BBSUtils.replaceBlank((String) value)); return; } rstList.put(key,value); } public static String getRaw(Context context,String fileName) { try { InputStream is = context.getresources().getAssets().open(fileName); // StringBuffer线程安全;StringBuilder线程不安全 BufferedReader reader = new BufferedReader( new InputStreamReader(is)); StringBuffer sb = new StringBuffer(); for (String str = reader.readLine(); str != null;) { sb.append(str); } return sb.toString(); } catch (IOException E) { e.printStackTrace(); } return null; }
JsonObject里面有两种情况:(1)JsonObject (2)JsonArray
JsonArray 后面有三种情况:(1)JsonObject (2)JsonArray(3)Object
====================================================
String jsonStr = Utils.getRaw(mContext,R.raw.file1); String temp = "{\"\":[{\"aa\":\"1\",\"bb\":\"2\"},{\"aa\":\"3\",\"bb\":\"4\"},{\"aa\":\"5\",\"bb\":\"6\"}]}"; System.out.println("---------jsonStr" + jsonStr); ArrayList<Map<?,?>> rstList = new ArrayList<Map<?,?>>(); try { Utils.JsonObject2HashMap(new JSONObject(jsonStr),rstList); Utils.JsonObject2HashMap(new JSONObject(temp),rstList); System.out.println("---------rstList" + rstList); } catch (JSONException E) { e.printStackTrace(); }
{
"progrAMMers": [
{
"firstName": "Brett",
"lastName": "McLaughlin"
},
{
"firstName": "Jason",
"lastName": "Hunter"
}
],
"authors": [
{
"firstName": "Isaac",
"lastName": "Asimov"
},
{
"firstName": "Tad",
"lastName": "Williams"
}
]
}
=================================================================
以上是大佬教程为你收集整理的将JsonObject转换成HashMap全部内容,希望文章能够帮你解决将JsonObject转换成HashMap所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。