欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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互相转换的资料请关注其它相关文章!

相关标签: Java json map