[转]Json字符串和map和HashMap之间的转换

需要导入alibaba.fastJson
maven中的依赖为

<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>

导入之后就可以愉快滴使用 了。
例子如下

package test;

import java.util.HashMap;
import java.util.Map;
import org.apache.commons.collections.map.HashedMap;
import com.alibaba.fastjson.JSON;
public class JsonTest {
public static void main(String[] args){
String params="{"version":"1.0","charset":"UTF-8","sign":"f94b7eb96d529bfe5b28d57288dd5b4ffb576c2ff98b2fa4ff2be6f70ab8b6e7","signType":"SHA-256","reqData":{"nextKeyValue":"","dateTime":"20160825113210","operatorNo":"9999","merchantNo":"000054","date":"20160116","branchNo":"0755"}}";

HashMap<String, Object> hashMap=JSON.parseObject(params, HashMap.class);
System.err.println("hashmap="+hashMap);

Map<String, Object> map=JSON.parseObject(params, Map.class);
System.out.println("map="+map);
}
}

结果

hashmap={sign=f94b7eb96d529bfe5b28d57288dd5b4ffb576c2ff98b2fa4ff2be6f70ab8b6e7, signType=SHA-256, reqData={"nextKeyValue":"","dateTime":"20160825113210","operatorNo":"9999","merchantNo":"000054","branchNo":"0755","date":"20160116"}, charset=UTF-8, version=1.0}
map={sign=f94b7eb96d529bfe5b28d57288dd5b4ffb576c2ff98b2fa4ff2be6f70ab8b6e7, signType=SHA-256, reqData={"nextKeyValue":"","dateTime":"20160825113210","operatorNo":"9999","merchantNo":"000054","branchNo":"0755","date":"20160116"}, charset=UTF-8, version=1.0}

当然,JSON.parseObject(String,Clazz)只是其中的一个。

package com.zkn.newlearn.json;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import java.util.Map;

/**
* JSON字符串自动转换
* Created by zkn on 2016/8/22.
*/
public class JsonToMapTest01 {

public static void main(String[] args){

String str = "{"0":"zhangsan","1":"lisi","2":"wangwu","3":"maliu"}";
//第一种方式
Map maps = (Map)JSON.parse(str);
System.out.println("这个是用JSON类来解析JSON字符串!!!");
for (Object map : maps.entrySet()){
System.out.println(((Map.Entry)map).getKey()+" " + ((Map.Entry)map).getValue());
}
//第二种方式
Map mapTypes = JSON.parseObject(str);
System.out.println("这个是用JSON类的parseObject来解析JSON字符串!!!");
for (Object obj : mapTypes.keySet()){
System.out.println("key为:"+obj+"值为:"+mapTypes.get(obj));
}
//第三种方式
Map mapType = JSON.parseObject(str,Map.class);
System.out.println("这个是用JSON类,指定解析类型,来解析JSON字符串!!!");
for (Object obj : mapType.keySet()){
System.out.println("key为:"+obj+"值为:"+mapType.get(obj));
}
//第四种方式
/**
* JSONObject是Map接口的一个实现类
*/
Map json = (Map) JSONObject.parse(str);
System.out.println("这个是用JSONObject类的parse方法来解析JSON字符串!!!");
for (Object map : json.entrySet()){
System.out.println(((Map.Entry)map).getKey()+" "+((Map.Entry)map).getValue());
}
//第五种方式
/**
* JSONObject是Map接口的一个实现类
*/
JSONObject jsonObject = JSONObject.parseObject(str);
System.out.println("这个是用JSONObject的parseObject方法来解析JSON字符串!!!");
for (Object map : json.entrySet()){
System.out.println(((Map.Entry)map).getKey()+" "+((Map.Entry)map).getValue());
}
//第六种方式
/**
* JSONObject是Map接口的一个实现类
*/
Map mapObj = JSONObject.parseObject(str,Map.class);
System.out.println("这个是用JSONObject的parseObject方法并执行返回类型来解析JSON字符串!!!");
for (Object map: json.entrySet()){
System.out.println(((Map.Entry)map).getKey()+" "+((Map.Entry)map).getValue());
}
String strArr = "{{"0":"zhangsan","1":"lisi","2":"wangwu","3":"maliu"}," +
"{"00":"zhangsan","11":"lisi","22":"wangwu","33":"maliu"}}";
// JSONArray.parse()
System.out.println(json);
}
}

 

————————————————
版权声明:本文为CSDN博主「张超帅」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38070406/article/details/80907581

原文地址:https://www.cnblogs.com/wangcp-2014/p/11578180.html