将JsonObject转换成HashMap
1.工具类:
Utils.class:
(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,
- List<Map<?, ?>> 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,
- List<Map<?, ?>> 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, params);
- rstList.put(key1, 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> mapObj = new HashMap<String, Object>();
- JsonToHashMap((JSONObject) jsonarray.get(i), mapObj, params);
- rstList.add(mapObj);
- continue;
- }
- }
- } catch (JSONException e) {
- e.printStackTrace();
- }
- }
- public static void JsonToHashMap(String key, Object value, Map<String, 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, 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 = 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
====================================================
2.调用类:
- 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();
- }
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相关推荐
- JSONObject.toBean() 把jsonobject转换成实体类
方法一 JSONObject类 第一种:net.sf.json.jsonobject 使用 JSONObject.toBean(xxx,xx.class) 把json转成实体类 一直不奏效,后来发现 ...
- 解决嵌套list类型的JSONObject/JSONArray转换成原来list问题。
解决嵌套list类型的JSONObject/JSONArray转换成原来list问题. 参考文章: (1)解决嵌套list类型的JSONObject/JSONArray转换成原来list问题. (2) ...
- Java解析json文件,转换成JSONObject
如下图,现有data.json文件,如何进行转换,方便程序处理? 转换成JSONObject: @Test void contextLoads() {String path = "/stat ...
- String转换成json格式(二):org.codehaus.jettison.json.JSONObject
实例: //将str转换成JSONObjct格式 public static void main(String [] args){String str = "{\"result\& ...
- json对象(json-lib)转换成list-map集合
虽然json-lib提供toBean方法,但是赶脚蛋疼,所以写了个转换,不需要配置类,直接转换成list-map(忽略了除JSONObject和JSONArray意外的处理,不过好像也没什么了):闲来 ...
- 把json对象串转换成map对象
2019独角兽企业重金招聘Python工程师标准>>> /** * nc只支持简单的 * 把json对象串转换成map对象 * @param jsonObjStr e ...
- java-将xlsx(excel)文件转换成json
来源:http://blog.csdn.net/Cassy_Wu/article/details/54577720 最近在工作接触到将xlsx(excel)转换成Json文件的需求.特此写个文章总结学 ...
- String转换成json
String转换成json格式(一):net.sf.json.JSONObject 原创 2016年05月04日 15:17:04 · 29304 实例: [html] view pl ...
- 将map转换成json字符串
import java.util.HashMap;import java.util.Map;import net.sf.json.JSONObject;public class Transfer {p ...
最新文章
- 解析solidity的event log
- Android魔法(第三弹)—— 一步步实现对折页面
- shutil.rmtree()
- 使用while和FOR循环分布打印字符串S='asdfer' 中的每一个元素
- python变量输出到文件_使用函数将多个变量写入文件
- docker添加新的环境变量_Docker环境变量
- java8安装_科学网—Java JDK 8 的安装以及环境变量的配置(Linux and Windows) - 彭勇的博文...
- 网页中Flash播放器常用参数设置(转)
- [转]# python中init和new的区别
- 数据库连接池种类及性能
- Mac 如何保护您的数据安全?
- 目标跟踪之MOSSE算法(C++版本配置及原理简介)
- Java 读写txt文件
- Chrome 出现内存 不足
- YUVPlayer: 基于Android平台的YUV视频原始数据播放器
- 【Java版算法思想】双指针算法
- VC中调用cmd命令的四种方式
- Msbuild的工具集版本
- 集训队作业2018: 青春猪头少年不会梦到兔女郎学姐(多限制容斥)(生成函数)(组合数学)
- 开发一个完整的iOS直播app必须技能
热门文章
- android删除wifi配置,[RK3288][Android6.0] WiFi之无线网络配置的忘记(移除)过程
- php实例化类的方法,在PHP中实例化类实例的不同方法
- (73)多路选择器(二选一)
- (46)Xilinx ILA IP核配置(七)(第10天)
- ffmpeg获取h264视频数据
- 用Openswan组建Linux IPSec ---第一部分
- 一文带你入门C++,类与对象、6个默认成员函数、this指针以及static关键字。
- mysql 5.6.34 二进制下载_mysql 5.6.34 二进制
- java 8和jdk区别_java-8 – JDK 6和JDK8之间的Java Collection差异
- 虚拟机状态错误_【行业资讯】VirtualBox 6.1.16 发布,开源虚拟机