java map json 转换_java json与map互相转换(二)

java json与map互相转换(二)

CreationTime--2018年7月16日15点09分

Author:Marydon

1.准备工作

所需jar包:

commons-beanutils-1.8.3.jar;

commons-collections-3.2.1.jar;

commons-lang-2.6.jar;

commons-logging-1.1.3.jar;

ezmorph-1.0.6.jar;

json-lib-2.4-jdk15.jar

importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;importjava.util.Set;importjava.util.SortedMap;importjava.util.TreeMap;importjava.util.Map.Entry;importorg.apache.log4j.Logger;importnet.sf.json.JSONObject;/*** JSON数据处理工具类

* @explain

*@authorMarydon

* @creationTime 2018年7月16日上午11:45:35

*@version1.0

*@since* @email marydon20170307@163.com*/

public classJsonUtils {private static Logger log = Logger.getLogger(JsonUtils.class);

}

2.json转map

没有现成的方法,需要自己进行封装。

方式一:无序Map

/**

* 将JSONObject转换成无序Map

* @explain

* @param jsonObject

* @return HashMap 无序Map

*/

public static Map toHashMap(JSONObject jsonObject) {

// 用于存储接收到的key:value

Map data = new HashMap();

// 获取json对象中的键

@SuppressWarnings("unchecked")

Set keySet = jsonObject.keySet();

String key = "";

Object value = null;

// 遍历jsonObject数据,添加到Map对象

for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {

key = iterator.next();

value = jsonObject.get(key);

data.put(key, value);

}

log.info("JSONObject-->HashMap:" + data);

return data;

}

方式二:有序Map

/**

* 将JSONObject转换成升序Map

* @explain 将参数按照第一个字符的键值 ASCII 码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值 ASCII 码递增排序,

* 以此类推通过SortedMap可以实现

* @param jsonObject

* @return SortedMap 按ASCII码升序排列

*/

public static Map toSortedMap(JSONObject jsonObject) {

// 用于存储接收到的key:value,并按key以ASCII码进行升序排列组合

SortedMap data = new TreeMap();

// 获取json对象中的键

@SuppressWarnings("unchecked")

Set keySet = jsonObject.keySet();

String key = "";

Object value = null;

// 遍历json数据,添加到SortedMap对象

for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {

key = iterator.next();

value = jsonObject.get(key);

data.put(key, value);

}

log.info("JSONObject-->SortedMap:" + data);

return data;

}

3.map转json

用法:JSONObject.fromObject(map);

4.举例说明

public static voidmain(String[] args) {

Map map = new HashMap();

map.put("method_code", "JMJKK0101");

map.put("identifier", "000000000000");

map.put("timestamp", "");

map.put("version", "Ver1.1");

map.put("area_code", "00000000");

map.put("access_type", "0");

map.put("access_id", "0101010101");

map.put("complete_key", "HMACSHA1");

map.put("complete_str", "摘要加密字符串");

map.put("param_key", "AES");

map.put("param_set", "请求业务参数加密字符串");//Map-->json

JSONObject jo =JSONObject.fromObject(map);

System.out.println(jo);//json-->HashMap

Map hashMap =JsonUtils.toHashMap(jo);

System.out.println(hashMap);//json-->SortedMap

Map sortedMap =JsonUtils.toSortedMap(jo);

System.out.println(sortedMap);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值