1.工具类:

Utils.class:

(1)简单的键值对map

[java] view plain copy  
  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深层嵌套模式形式:

[java] view plain copy  
  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.调用类:

[java] view plain copy  
  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"
    }
  ]
}

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

转载于:https://www.cnblogs.com/telwanggs/p/5430135.html

将JsonObject转换成HashMap相关推荐

  1. JSONObject.toBean() 把jsonobject转换成实体类

    方法一 JSONObject类 第一种:net.sf.json.jsonobject 使用 JSONObject.toBean(xxx,xx.class) 把json转成实体类 一直不奏效,后来发现 ...

  2. 解决嵌套list类型的JSONObject/JSONArray转换成原来list问题。

    解决嵌套list类型的JSONObject/JSONArray转换成原来list问题. 参考文章: (1)解决嵌套list类型的JSONObject/JSONArray转换成原来list问题. (2) ...

  3. Java解析json文件,转换成JSONObject

    如下图,现有data.json文件,如何进行转换,方便程序处理? 转换成JSONObject: @Test void contextLoads() {String path = "/stat ...

  4. String转换成json格式(二):org.codehaus.jettison.json.JSONObject

    实例: //将str转换成JSONObjct格式 public static void main(String [] args){String str = "{\"result\& ...

  5. json对象(json-lib)转换成list-map集合

    虽然json-lib提供toBean方法,但是赶脚蛋疼,所以写了个转换,不需要配置类,直接转换成list-map(忽略了除JSONObject和JSONArray意外的处理,不过好像也没什么了):闲来 ...

  6. 把json对象串转换成map对象

    2019独角兽企业重金招聘Python工程师标准>>> /**    * nc只支持简单的   * 把json对象串转换成map对象    * @param jsonObjStr e ...

  7. java-将xlsx(excel)文件转换成json

    来源:http://blog.csdn.net/Cassy_Wu/article/details/54577720 最近在工作接触到将xlsx(excel)转换成Json文件的需求.特此写个文章总结学 ...

  8. String转换成json

    String转换成json格式(一):net.sf.json.JSONObject 原创 2016年05月04日 15:17:04 ·         29304 实例: [html] view pl ...

  9. 将map转换成json字符串

    import java.util.HashMap;import java.util.Map;import net.sf.json.JSONObject;public class Transfer {p ...

最新文章

  1. 解析solidity的event log
  2. Android魔法(第三弹)—— 一步步实现对折页面
  3. shutil.rmtree()
  4. 使用while和FOR循环分布打印字符串S='asdfer' 中的每一个元素
  5. python变量输出到文件_使用函数将多个变量写入文件
  6. docker添加新的环境变量_Docker环境变量
  7. java8安装_科学网—Java JDK 8 的安装以及环境变量的配置(Linux and Windows) - 彭勇的博文...
  8. 网页中Flash播放器常用参数设置(转)
  9. [转]# python中init和new的区别
  10. 数据库连接池种类及性能
  11. Mac 如何保护您的数据安全?
  12. 目标跟踪之MOSSE算法(C++版本配置及原理简介)
  13. Java 读写txt文件
  14. Chrome 出现内存 不足
  15. YUVPlayer: 基于Android平台的YUV视频原始数据播放器
  16. 【Java版算法思想】双指针算法
  17. VC中调用cmd命令的四种方式
  18. Msbuild的工具集版本
  19. 集训队作业2018: 青春猪头少年不会梦到兔女郎学姐(多限制容斥)(生成函数)(组合数学)
  20. 开发一个完整的iOS直播app必须技能

热门文章

  1. android删除wifi配置,[RK3288][Android6.0] WiFi之无线网络配置的忘记(移除)过程
  2. php实例化类的方法,在PHP中实例化类实例的不同方法
  3. (73)多路选择器(二选一)
  4. (46)Xilinx ILA IP核配置(七)(第10天)
  5. ffmpeg获取h264视频数据
  6. 用Openswan组建Linux IPSec ---第一部分
  7. 一文带你入门C++,类与对象、6个默认成员函数、this指针以及static关键字。
  8. mysql 5.6.34 二进制下载_mysql 5.6.34 二进制
  9. java 8和jdk区别_java-8 – JDK 6和JDK8之间的Java Collection差异
  10. 虚拟机状态错误_【行业资讯】VirtualBox 6.1.16 发布,开源虚拟机