当前位置: 移动技术网 > IT编程>开发语言>Java > java json与map互相转换的示例

java json与map互相转换的示例

2020年10月23日  | 移动技术网IT编程  | 我要评论
第一种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互相转换的资料请关注移动技术网其它相关文章!

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网