文档章节

json字符串 转化为 List、Map

beanGou
 beanGou
发布于 2014/08/18 11:24
字数 407
阅读 206
收藏 0
  1. 引入jar包:json-20140107.jar, 链接地址:http://pan.baidu.com/s/1pJoI3Jd

  2. 关键类:JSONHelper

  3. package com.sitech.echn.utils;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Map;
    
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    
    public class JSONHelper {
    	/*
    	 * 将json字符串转换为List集合
    	 */
        @SuppressWarnings("unchecked")
    	public static List<Map<String, Object>> jsonObjList(String jsonArrStr) {
            List<Map<String, Object>> jsonList = new ArrayList<Map<String, Object>>();
            JSONArray jsonArr = null;
            try {
                jsonArr = new JSONArray(jsonArrStr);
                jsonList = (List<Map<String, Object>>)JSONHelper.jsonToList(jsonArr);
            } catch (JSONException e) {
                System.out.println("Json字符串转换异常!");
                e.printStackTrace();
            }
            return jsonList;
        }
        /**
         * 将json对象的键值存放在集合,映射table的column
         *
         * @param map
         * @return
         */
        public static List<String> jsonMapKeysList(Map<?, ?> map) {
            List<String> jsonjsonList = new ArrayList<String>();
            String columnStr = "column";
            for (int i = 0; i < map.keySet().size(); i++) {
                jsonjsonList.add(columnStr + (i + 1));
            }
            System.out.println(jsonjsonList.size());
            return jsonjsonList;
        }
        /**
         * 将传递近来的json数组转换为List集合
         *
         * @param jsonArr
         * @return
         * @throws JSONException
         */
        public static List<?> jsonToList(JSONArray jsonArr)
                throws JSONException {
            List<Object> jsonToMapList = new ArrayList<Object>();
            for (int i = 0; i < jsonArr.length(); i++) {
                Object object = jsonArr.get(i);
                if (object instanceof JSONArray) {
                    jsonToMapList.add(JSONHelper.jsonToList((JSONArray) object));
                } else if (object instanceof JSONObject) {
                    jsonToMapList.add(JSONHelper.jsonToMap((JSONObject) object));
                } else {
                    jsonToMapList.add(object);
                }
            }
            return jsonToMapList;
        }
        /**
         * 将传递近来的json对象转换为Map集合
         *
         * @param jsonObj
         * @return
         * @throws JSONException
         */
        @SuppressWarnings("unchecked")
        public static Map<String, Object> jsonToMap(JSONObject jsonObj)
                throws JSONException {
            Map<String, Object> jsonMap = new HashMap<String, Object>();
            Iterator<String> jsonKeys = jsonObj.keys();
            while (jsonKeys.hasNext()) {
                String jsonKey = jsonKeys.next();
                Object jsonValObj = jsonObj.get(jsonKey);
                if (jsonValObj instanceof JSONArray) {
                    jsonMap.put(jsonKey, JSONHelper.jsonToList((JSONArray) jsonValObj));
                } else if (jsonValObj instanceof JSONObject) {
                    jsonMap.put(jsonKey, JSONHelper.jsonToMap((JSONObject) jsonValObj));
                } else {
                    jsonMap.put(jsonKey, jsonValObj);
                }
            }
            return jsonMap;
        }
        
    }

4.  测试代码:

import java.util.List;
import java.util.Map;

import com.cmcc.zysoft.easyswap.util.JSONHelper;

public class Test {

	@org.junit.Test
	public void testToList() {
		List<Map<String, Object>> list = JSONHelper.jsonObjList(
		                 "[{\"operateType\":\"A\",\"prodPrcId\":\"PIBPG410\",\"prodId\":\"BPG410\"},"
				+ "{\"operateType\":\"A\",\"prodPrcId\":\"PIBPG400\",\"prodId\":\"BPG400\"},"
				+ "{\"operateType\":\"A\",\"prodPrcId\":\"PIBPG420\",\"prodId\":\"BPG420\"},"
				+ "{\"operateType\":\"A\",\"prodPrcId\":\"PIBPG410\",\"prodId\":\"BPG410\"},"
				+ "{\"operateType\":\"A\",\"prodPrcId\":\"PIBPG400\",\"prodId\":\"BPG400\"},"
				+ "{\"operateType\":\"A\",\"prodPrcId\":\"PIBPG420\",\"prodId\":\"BPG420\"}]");
		System.out.println(list.size());
		System.out.println(list.get(2).get("prodPrcId"));
	}

}

@org.junit.Test
	public void testToMap() {
		Map<String, Object> map = JSONHelper.jsonToMap(new JSONObject("{\"operateType\":\"A\",\"prodPrcId\":\"PIBPG410\",\"prodId\":\"BPG410\"}"));
		System.out.println(map.get("operateType"));
		System.out.println(map.get("prodPrcId"));
	}

     




© 著作权归作者所有

beanGou
粉丝 7
博文 88
码字总数 20094
作品 0
杭州
程序员
私信 提问
json解析:[2]fastjson 使用

利用阿里的fastjson包对对象进行 json的转化与解析,本篇为第二篇,第一篇讲述的是利用gson进行json数据解析,地址:jingyan.baidu.com/article/e8cdb32b619f8437042bad53.html 常用类型 类型...

John-HZ
2015/02/05
0
0
jfinal结果集转化为JSON

@JFinal 你好,想跟你请教个问题: 目前直接查出结果集List或者LIST,如果要用EASYUI的那种JSON字符串形式,现在只能将LIST,转化为LIST>,然后利用工具类直接转化得到JSON样式.那么需要遍历L...

陶方涛涛
2013/06/09
2K
4
初识Jackson

首先我们学习json的时候第一想到的是如何将JavaBean对象转化成Json字符串,或者怎样将json字符串转化成JavaBean对象。 一.JavaBean对象转化成Json字符串(串行化) 使用ObjectMapper object...

帅得拖网速
2016/08/11
60
0
Java解析复杂json

假设有如下的json: String returnResult=[{"ip":"1.28.145.70","res":["{"type":"Amount of degraded disk in raid","metric":"IQiyi.Raid.Degraded[1]","value":"0.0","lasttime":"1456470......

浮躁的码农
2016/02/26
190
0
JSON格式的字符串转换为java对象

package cn.itcast.caoke.json; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json......

习惯了-想你
2016/08/26
274
0

没有更多内容

加载失败,请刷新页面

加载更多

宜信开源|一个实例解析PaaS平台LAIN的9大杀手级功能

一、基于Docker的PaaS平台LAIN 在金融的场景下,LAIN 是为解放各个团队和业务线的生产力而设计的一个云平台。LAIN 正式上线已经大约两年,基本已经成熟,为宜信大数据创新中心各个团队提供了...

宜信技术学院
3分钟前
2
0
DBeaver调整编辑窗口字体大小

窗口-->首选项: 点击“编辑”之后,字体大小设为11的大小即比较合适。

BG2KNT
10分钟前
0
0
【Kubernetes社区之路】Slack沟通工具简介

什么是Slack Slack(https://slack.com) 是一款沟通工具,它与国内常见的微信、微博、QQ、钉钉有很大的不同,Slack主要用于工作讨论,可以让讨论更加高效。 Slack的口号便是让工作变得简单、...

恋恋美食
22分钟前
1
0
Visual Paradigm 教程[UML]:如何在SoaML中建模多方服务?

下载Visual Paradigm最新试用版 编写本教程是为了解释多方服务在SoaML方面的含义以及如何使用各种SoaML图表指定此类服务Visual Paradigm。 本教程中将使用的示例是通过在线银行账户纳税。您将...

xiaochuachua
23分钟前
0
0
SpringMVC 的Controller方法声明为private 或者 public 有什么区别

平常没有区别,都能正常处理请求。只有在使用AOP时会有问题: Controller方法声明为private时会出现获取到的注入service属性为null的问题,public方法才能正常获取注入的service。 原因如下:...

为了美好的明天
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部