java map js_java json与map互相转换的示例

第一种

1.准备工作

所需jar包:json-20180130.jar

2.json转map

用法:JSONObject.toMap();

3.map转json

用法:new JSONObject(map);

4.举例说明

public static void main(String[] args) {

JSONObject jo = new JSONObject();

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

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

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

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

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

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

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

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

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

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

jo.put("param_set", "请求业务参数加密字符串");

// json-->Map

Map map = jo.toMap();

System.out.println(map);

// Map-->json

JSONObject jo2 = new JSONObject(map);

System.out.println(jo2);

}

第二种

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

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

import java.util.SortedMap;

import java.util.TreeMap;

import java.util.Map.Entry;

import org.apache.log4j.Logger;

import net.sf.json.JSONObject;

/**

* JSON数据处理工具类

* @explain

* @author Marydon

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

* @version 1.0

* @since

* @email marydon20170307@163.com

*/

public class JsonUtils {

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 void main(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);

}

以上就是java json与map互相转换的示例的详细内容,更多关于java json与map互相转换的资料请关注脚本之家其它相关文章!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值