java json与map互相转换的示例
程序员文章站
2022-06-16 19:51:10
第一种1.准备工作 所需jar包:json-20180130.jar2.json转map 用法:jsonobject.tomap();3.map转json 用法:new jsonobject(m...
第一种
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<string, object> 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<string, object> tohashmap(jsonobject jsonobject) { // 用于存储接收到的key:value map<string, object> data = new hashmap<string, object>(); // 获取json对象中的键 @suppresswarnings("unchecked") set<string> keyset = jsonobject.keyset(); string key = ""; object value = null; // 遍历jsonobject数据,添加到map对象 for (iterator<string> 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<string, object> tosortedmap(jsonobject jsonobject) { // 用于存储接收到的key:value,并按key以ascii码进行升序排列组合 sortedmap<string, object> data = new treemap<string, object>(); // 获取json对象中的键 @suppresswarnings("unchecked") set<string> keyset = jsonobject.keyset(); string key = ""; object value = null; // 遍历json数据,添加到sortedmap对象 for (iterator<string> 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<string, object> map = new hashmap<string, object>(); 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<string, object> hashmap = jsonutils.tohashmap(jo); system.out.println(hashmap); // json-->sortedmap map<string, object> sortedmap = jsonutils.tosortedmap(jo); system.out.println(sortedmap); }
以上就是java json与map互相转换的示例的详细内容,更多关于java json与map互相转换的资料请关注其它相关文章!
上一篇: 宝丽通实现连续播放实现代码
下一篇: FckEditor 中文配置手册