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. July 12th, Week 29th Tuesday, 2016

    When the traveler goes alone he gets acquainted with himself. 独自旅行可以让人更好地了解自己. With other's company, ...

  2. 细胞分裂(codevs 2952)

    题目描述 Description 著名生物学家F博士发现了一种单细胞生物. 它长得像蚯蚓,分裂速度极快(每分钟一次),分裂也像蚯蚓一样,断成两段,再长成. 它很好斗,只要q只聚集在一起,就会q只一群打 ...

  3. 自定义view实现水波纹效果

    水波纹效果: 1.标准正余弦水波纹: 2.非标准圆形液柱水波纹: 虽说都是水波纹,但两者在实现上差异是比较大的,一个通过正余弦函数模拟水波纹效果,另外一个会运用到图像的混合模式(PorterDuffX ...

  4. oracle 10g 学习之函数和存储过程(12)

    一.函数 1. 函数的 helloworld: 返回一个 "helloworld--!" 的字符串 create or replace function helloworld re ...

  5. 用VMware 11.0虚拟机安装Win8 系统失败,提示“shsucdx can't install”

    研究了好久,网上那些更改bios的方法根本行不通,因为该版本的biso根本没有SATA选项!解决方法很简单,如下图: 重启虚拟机即可.

  6. jquery笔记(仅供个人参考)

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  7. wp8 入门到精通 抓包

    抓包工具Fiddler的使用 Fiddler是一款免费且功能强大的数据包抓取软件.它通过代理的方式获取程序http通讯的数据.我们可以利用它来检测网页和服务器的交互情况.下面,我们以http://bl ...

  8. zxing实现二维码生成和解析

    转自:http://kesun-shy.iteye.com/blog/2154169 二维码的生成与解析.有多种途径.我选择用大品牌,google老大的zxing. gitHub链接是(我用的3.0. ...

  9. 显示单位px和dip以及sp的区别

    显示单位px和dip以及sp的区别(转) dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVG ...

  10. UVA - 10891 Game of Sum 区间DP

    题目连接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19461 Game of sum Description This ...