将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"
}
]
}
=================================================================
将JsonObject转换成HashMap的更多相关文章
- 将前台传回的HttpServletRequest转换成HashMap
import java.util.HashMap;import java.util.Map;import java.util.Map.Entry;import java.util.Set; impor ...
- xml转换成map
import java.io.IOException;import java.io.StringReader;import java.util.ArrayList;import java.util.H ...
- Gson将字符串转换成JsonObject和JsonArray
以下均利用Gson来处理: 1.将bean转换成Json字符串: public static String beanToJSONString(Object bean) { return new Gso ...
- android JSON获取值String无法转换成JSONObject
项目中,已经获取到服务器返回的XML,并且已经解析. value= (String) result.getProperty("Value").toString().trim();J ...
- [Java] 遍历HashMap和HashMap转换成List的两种方式
遍历HashMap和HashMap转换成List /** * convert the map to the list(1) */ public static void main(String[] ...
- HashMap的工作原理以及代码实现,为什么要转换成红黑树?
原理参考:https://blog.csdn.net/striveb/article/details/84657326 总结: 为什么当桶中键值对数量大于8才转换成红黑树,数量小于6才转换成链表? 参 ...
- (转)为什么HashMap中链表长度超过8会转换成红黑树
原博地址:https://blog.csdn.net/xingfei_work/article/details/79637878 HashMap在jdk1.8之后引入了红黑树的概念,表示若桶中链表元素 ...
- 将bean转换成键值列表
日常开发中在进行接口对接的数据传输时,有一种场景是将bean转成jsonString,这里可以将bean转换成Map再转成jsonString. 工具类如下: public static String ...
- json格式转换成Map的应用
jsp 1.引用json.js(将json格式转换成字符串) 2. var name = document.getElementById("name").value; var re ...
随机推荐
- July 12th, Week 29th Tuesday, 2016
When the traveler goes alone he gets acquainted with himself. 独自旅行可以让人更好地了解自己. With other's company, ...
- 细胞分裂(codevs 2952)
题目描述 Description 著名生物学家F博士发现了一种单细胞生物. 它长得像蚯蚓,分裂速度极快(每分钟一次),分裂也像蚯蚓一样,断成两段,再长成. 它很好斗,只要q只聚集在一起,就会q只一群打 ...
- 自定义view实现水波纹效果
水波纹效果: 1.标准正余弦水波纹: 2.非标准圆形液柱水波纹: 虽说都是水波纹,但两者在实现上差异是比较大的,一个通过正余弦函数模拟水波纹效果,另外一个会运用到图像的混合模式(PorterDuffX ...
- oracle 10g 学习之函数和存储过程(12)
一.函数 1. 函数的 helloworld: 返回一个 "helloworld--!" 的字符串 create or replace function helloworld re ...
- 用VMware 11.0虚拟机安装Win8 系统失败,提示“shsucdx can't install”
研究了好久,网上那些更改bios的方法根本行不通,因为该版本的biso根本没有SATA选项!解决方法很简单,如下图: 重启虚拟机即可.
- jquery笔记(仅供个人参考)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- wp8 入门到精通 抓包
抓包工具Fiddler的使用 Fiddler是一款免费且功能强大的数据包抓取软件.它通过代理的方式获取程序http通讯的数据.我们可以利用它来检测网页和服务器的交互情况.下面,我们以http://bl ...
- zxing实现二维码生成和解析
转自:http://kesun-shy.iteye.com/blog/2154169 二维码的生成与解析.有多种途径.我选择用大品牌,google老大的zxing. gitHub链接是(我用的3.0. ...
- 显示单位px和dip以及sp的区别
显示单位px和dip以及sp的区别(转) dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA.HVG ...
- UVA - 10891 Game of Sum 区间DP
题目连接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19461 Game of sum Description This ...