1.工具类:

Utils.class:

(1)简单的键值对map

  1. public class Utils {
  2. public static String getRaw(Context context, int RawId) {
  3. try {
  4. InputStream is = context.getResources().openRawResource(RawId);
  5. BufferedReader reader = new BufferedReader(
  6. new InputStreamReader(is));
  7. // StringBuffer线程安全;StringBuilder线程不安全
  8. StringBuffer sb = new StringBuffer();
  9. for (String str = null; (str = reader.readLine()) != null;) {
  10. sb.append(str);
  11. }
  12. return sb.toString();
  13. } catch (IOException e) {
  14. e.printStackTrace();
  15. }
  16. return null;
  17. }
  18. public static String getAsset(Context context, String fileName) {
  19. try {
  20. InputStream is = context.getResources().getAssets().open(fileName);
  21. // StringBuffer线程安全;StringBuilder线程不安全
  22. BufferedReader reader = new BufferedReader(
  23. new InputStreamReader(is));
  24. StringBuffer sb = new StringBuffer();
  25. for (String str = null; (str = reader.readLine()) != null;)  {
  26. sb.append(str);
  27. }
  28. return sb.toString();
  29. } catch (IOException e) {
  30. e.printStackTrace();
  31. }
  32. return null;
  33. }
  34. public static void JsonObject2HashMap(JSONObject jo, List<Map<?, ?>> rstList) {
  35. for (Iterator<String> keys = jo.keys(); keys.hasNext();) {
  36. try {
  37. String key1 = keys.next();
  38. System.out.println("key1---" + key1 + "------" + jo.get(key1)
  39. + (jo.get(key1) instanceof JSONObject) + jo.get(key1)
  40. + (jo.get(key1) instanceof JSONArray));
  41. if (jo.get(key1) instanceof JSONObject) {
  42. JsonObject2HashMap((JSONObject) jo.get(key1), rstList);
  43. continue;
  44. }
  45. if (jo.get(key1) instanceof JSONArray) {
  46. JsonArray2HashMap((JSONArray) jo.get(key1), rstList);
  47. continue;
  48. }
  49. System.out.println("key1:" + key1 + "----------jo.get(key1):"
  50. + jo.get(key1));
  51. json2HashMap(key1, jo.get(key1), rstList);
  52. } catch (JSONException e) {
  53. e.printStackTrace();
  54. }
  55. }
  56. }
  57. public static void JsonArray2HashMap(JSONArray joArr,
  58. List<Map<?, ?>> rstList) {
  59. for (int i = 0; i < joArr.length(); i++) {
  60. try {
  61. if (joArr.get(i) instanceof JSONObject) {
  62. JsonObject2HashMap((JSONObject) joArr.get(i), rstList);
  63. continue;
  64. }
  65. if (joArr.get(i) instanceof JSONArray) {
  66. JsonArray2HashMap((JSONArray) joArr.get(i), rstList);
  67. continue;
  68. }
  69. System.out.println("Excepton~~~~~");
  70. } catch (JSONException e) {
  71. e.printStackTrace();
  72. }
  73. }
  74. }
  75. public static void json2HashMap(String key, Object value,
  76. List<Map<?, ?>> rstList) {
  77. HashMap<String, Object> map = new HashMap<String, Object>();
  78. map.put(key, value);
  79. rstList.add(map);
  80. }
  81. }

(2)完全Map深层嵌套模式形式:

  1. /**
  2. * @param jsonData
  3. * @param rstList
  4. * @param params
  5. * @func hashmap追加字段
  6. */
  7. public static void JsonToHashMap(JSONObject jsonData, Map<String, Object> rstList,
  8. String... params) {
  9. try {
  10. for (Iterator<String> keyStr = jsonData.keys(); keyStr.hasNext();) {
  11. String key1 = keyStr.next().trim();
  12. if (jsonData.get(key1) instanceof JSONObject) {
  13. HashMap<String, Object> mapObj = new HashMap<String, Object>();
  14. JsonToHashMap((JSONObject) jsonData.get(key1), mapObj, params);
  15. rstList.put(key1, mapObj);
  16. continue;
  17. }
  18. if (jsonData.get(key1) instanceof JSONArray) {
  19. ArrayList<Map<String, Object>> arrayList = new ArrayList<Map<String, Object>>();
  20. JsonToHashMap((JSONArray) jsonData.get(key1), arrayList, params);
  21. rstList.put(key1, arrayList);
  22. continue;
  23. }
  24. JsonToHashMap(key1, jsonData.get(key1), rstList);
  25. }
  26. // 追加字段
  27. if (params != null && params.length == 2) {
  28. rstList.put(params[0], params[1]);
  29. }
  30. if (params != null && params.length == 4) {
  31. rstList.put(params[0], params[1]);
  32. rstList.put(params[2], params[3]);
  33. }
  34. } catch (JSONException e) {
  35. e.printStackTrace();
  36. }
  37. }
  38. public static void JsonToHashMap(JSONArray jsonarray, List<Map<String, Object>> rstList,
  39. String... params) {
  40. try {
  41. for (int i = 0; i < jsonarray.length(); i++) {
  42. if (jsonarray.get(i) instanceof JSONObject) {
  43. HashMap<String, Object> mapObj = new HashMap<String, Object>();
  44. JsonToHashMap((JSONObject) jsonarray.get(i), mapObj, params);
  45. rstList.add(mapObj);
  46. continue;
  47. }
  48. }
  49. } catch (JSONException e) {
  50. e.printStackTrace();
  51. }
  52. }
  53. public static void JsonToHashMap(String key, Object value, Map<String, Object> rstList) {
  54. key = BBSUtils.replaceBlank(key);
  55. if (value instanceof String) {
  56. rstList.put(key, BBSUtils.replaceBlank((String) value));
  57. return;
  58. }
  59. rstList.put(key, value);
  60. }
  61. public static String getRaw(Context context, int RawId) {
  62. try {
  63. InputStream is = context.getResources().openRawResource(RawId);
  64. BufferedReader reader = new BufferedReader(
  65. new InputStreamReader(is));
  66. // StringBuffer线程安全;StringBuilder线程不安全
  67. StringBuffer sb = new StringBuffer();
  68. for (String str = null; (str = reader.readLine()) != null;) {
  69. sb.append(str);
  70. }
  71. return sb.toString();
  72. } catch (IOException e) {
  73. e.printStackTrace();
  74. }
  75. return null;
  76. }
  77. public static String getAsset(Context context, String fileName) {
  78. try {
  79. InputStream is = context.getResources().getAssets().open(fileName);
  80. // StringBuffer线程安全;StringBuilder线程不安全
  81. BufferedReader reader = new BufferedReader(
  82. new InputStreamReader(is));
  83. StringBuffer sb = new StringBuffer();
  84. for (String str = reader.readLine(); str != null;) {
  85. sb.append(str);
  86. }
  87. return sb.toString();
  88. } catch (IOException e) {
  89. e.printStackTrace();
  90. }
  91. return null;
  92. }

备注:

JsonObject里面有两种情况:(1)JsonObject (2)JsonArray

JsonArray  后面有三种情况:(1)JsonObject (2)JsonArray (3)Object

====================================================

2.调用类:

  1. String jsonStr = Utils.getRaw(mContext, R.raw.file1);
  2. String temp = "{\"\":[{\"aa\":\"1\",\"bb\":\"2\"},{\"aa\":\"3\",\"bb\":\"4\"},{\"aa\":\"5\",\"bb\":\"6\"}]}";
  3. System.out.println("---------jsonStr" + jsonStr);
  4. ArrayList<Map<?, ?>> rstList = new ArrayList<Map<?, ?>>();
  5. try {
  6. Utils.JsonObject2HashMap(new JSONObject(jsonStr), rstList);
  7. Utils.JsonObject2HashMap(new JSONObject(temp), rstList);
  8. System.out.println("---------rstList" + rstList);
  9. } catch (JSONException e) {
  10. e.printStackTrace();
  11. }

3.Raw文件夹下文本文件file1:

{
  "programmers": [
    {
      "firstName": "Brett", 
      "lastName": "McLaughlin"
    }, 
    {
      "firstName": "Jason", 
      "lastName": "Hunter"
    }
  ], 
  "authors": [
    {
      "firstName": "Isaac", 
      "lastName": "Asimov"
    }, 
    {
      "firstName": "Tad", 
      "lastName": "Williams"
    }
  ]
}

=================================================================

将JsonObject转换成HashMap的更多相关文章

  1. 将前台传回的HttpServletRequest转换成HashMap

    import java.util.HashMap;import java.util.Map;import java.util.Map.Entry;import java.util.Set; impor ...

  2. xml转换成map

    import java.io.IOException;import java.io.StringReader;import java.util.ArrayList;import java.util.H ...

  3. Gson将字符串转换成JsonObject和JsonArray

    以下均利用Gson来处理: 1.将bean转换成Json字符串: public static String beanToJSONString(Object bean) { return new Gso ...

  4. android JSON获取值String无法转换成JSONObject

    项目中,已经获取到服务器返回的XML,并且已经解析. value= (String) result.getProperty("Value").toString().trim();J ...

  5. [Java] 遍历HashMap和HashMap转换成List的两种方式

    遍历HashMap和HashMap转换成List   /** * convert the map to the list(1) */ public static void main(String[] ...

  6. HashMap的工作原理以及代码实现,为什么要转换成红黑树?

    原理参考:https://blog.csdn.net/striveb/article/details/84657326 总结: 为什么当桶中键值对数量大于8才转换成红黑树,数量小于6才转换成链表? 参 ...

  7. (转)为什么HashMap中链表长度超过8会转换成红黑树

    原博地址:https://blog.csdn.net/xingfei_work/article/details/79637878 HashMap在jdk1.8之后引入了红黑树的概念,表示若桶中链表元素 ...

  8. 将bean转换成键值列表

    日常开发中在进行接口对接的数据传输时,有一种场景是将bean转成jsonString,这里可以将bean转换成Map再转成jsonString. 工具类如下: public static String ...

  9. json格式转换成Map的应用

    jsp 1.引用json.js(将json格式转换成字符串) 2. var name = document.getElementById("name").value; var re ...

随机推荐

  1. onItemClick 参数解释

    X, Y两个listview,X里有1,2,3,4这4个item,Y里有a,b,c,d这4个item.如果你点了b这个item.如下:public void onItemClick (AdapterV ...

  2. Kafka学习笔记(二):Partition分发策略

    kafka版本0.8.2.1 Java客户端版本0.9.0.0 为了更好的实现负载均衡和消息的顺序性,Kafka Producer可以通过分发策略发送给指定的Partition.Kafka保证在par ...

  3. 使用asp.net从零开始制作设计网站---转载

    首先感谢提供此教程的朋友,可以给大家学习的机会,很有用,留着好好学.如下正文: 1. 申请域名 2. 购买空间 3. 备案 4. 使用photoshop完成设计与切图  5. 使用dreamweave ...

  4. device unauthorized & ANDROID_ADB_SERVER_PORT 问题解决

    最近做安卓开发的时候,碰到了如下两个极品问题,刚开始晕头转向,仔细一研究终于解决了: FAQ1: C:\Users\xxx>adb shelladb: Env var ANDROID_ADB_S ...

  5. mac平台scala开发环境搭建

    到scala官网,下载scala的sdk,地址:http://www.scala-lang.org/download/ adeMacBook-Pro:scala- apple$ wget http:/ ...

  6. 在php4下可用,简单的php数组转成json格式,

    function array_to_json( $array ){     if( !is_array( $array ) ){         return false;     }       $ ...

  7. JNDI 是什么

    转自:http://blog.csdn.net/zhaosg198312/article/details/3979435 JNDI是 Java 命名与目录接口(Java Naming and Dire ...

  8. HDU 1166 敌兵布阵 线段树

    敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  9. poj 1114 完全背包 dp

    如果可以每个物品拿多件,则从小到大遍历,否则从大到小遍历. G - Piggy-Bank Time Limit:1000MS     Memory Limit:32768KB     64bit IO ...

  10. 编译包含Google Play服务App的SDK版本问题

    编译包含Google Play服务App的SDK版本问题   错误信息:No Resouce identifier found for attribute 'touchscreen BlocksFoc ...