2019独角兽企业重金招聘Python工程师标准>>>
(首选)
json转map通用方法
这里提供一方法,可以当作工具类,只要json字符串没有问题,嵌套几层都可以。
import net.sf.json.JSONArray; import net.sf.json.JSONObject public class Json2Map { /** * 将json字符串转为Map结构 * 如果json复杂,结果可能是map嵌套map * @param jsonStr 入参,json格式字符串 * @return 返回一个map */ public static Mapjson2Map(String jsonStr) { Map map = new HashMap<>(); if(jsonStr != null && !"".equals(jsonStr)){ //最外层解析 JSONObject json = JSONObject.fromObject(jsonStr); for (Object k : json.keySet()) { Object v = json.get(k); //如果内层还是数组的话,继续解析 if (v instanceof JSONArray) { List
==================================================================
package
com.zkn.newlearn.json;
import
com.alibaba.fastjson.JSON;
import
com.alibaba.fastjson.JSONArray;
import
com.alibaba.fastjson.JSONObject;
import
java.util.List;
import
java.util.Map;
/**
* Created by zkn on 2016/8/22.
*/
public
class
JsonToMapTest02 {
public
static
void
main(String[] args){
String strArr =
"[{\"0\":\"zhangsan\",\"1\":\"lisi\",\"2\":\"wangwu\",\"3\":\"maliu\"},"
+
"{\"00\":\"zhangsan\",\"11\":\"lisi\",\"22\":\"wangwu\",\"33\":\"maliu\"}]"
;
//第一种方式
List> listObjectFir = (List>) JSONArray.parse(strArr);
System.out.println(
"利用JSONArray中的parse方法来解析json数组字符串"
);
for
(Map mapList : listObjectFir){
for
(Map.Entry entry : mapList.entrySet()){
System.out.println( entry.getKey() +
" "
+entry.getValue());
}
}
//第二种方式
List> listObjectSec = JSONArray.parseObject(strArr,List.
class
);
System.out.println(
"利用JSONArray中的parseObject方法并指定返回类型来解析json数组字符串"
);
for
(Map mapList : listObjectSec){
for
(Map.Entry entry : mapList.entrySet()){
System.out.println( entry.getKey() +
" "
+entry.getValue());
}
}
//第三种方式
JSONArray listObjectThir = JSONArray.parseArray(strArr);
System.out.println(
"利用JSONArray中的parseArray方法来解析json数组字符串"
);
for
(Object mapList : listObjectThir){
for
(Object entry : ((Map)mapList).entrySet()){
System.out.println(((Map.Entry)entry).getKey() +
" "
+((Map.Entry)entry).getValue());
}
}
//第四种方式
List listObjectFour = JSONArray.parseArray(strArr,Map.
class
);
System.out.println(
"利用JSONArray中的parseArray方法并指定返回类型来解析json数组字符串"
);
for
(Object mapList : listObjectFour){
for
(Object entry : ((Map)mapList).entrySet()){
System.out.println(((Map.Entry)entry).getKey() +
" "
+((Map.Entry)entry).getValue());
}
}
//第五种方式
JSONArray listObjectFifth = JSONObject.parseArray(strArr);
System.out.println(
"利用JSONObject中的parseArray方法来解析json数组字符串"
);
for
(Object mapList : listObjectFifth){
for
(Object entry : ((Map)mapList).entrySet()){
System.out.println(((Map.Entry)entry).getKey() +
" "
+((Map.Entry)entry).getValue());
}
}
//第六种方式
List listObjectSix = JSONObject.parseArray(strArr,Map.
class
);
System.out.println(
"利用JSONObject中的parseArray方法并指定返回类型来解析json数组字符串"
);
for
(Object mapList : listObjectSix){
for
(Object entry : ((Map)mapList).entrySet()){
System.out.println(((Map.Entry)entry).getKey() +
" "
+((Map.Entry)entry).getValue());
}
}
//第七种方式
JSONArray listObjectSeven = JSON.parseArray(strArr);
System.out.println(
"利用JSON中的parseArray方法来解析json数组字符串"
);
for
(Object mapList : listObjectSeven){
for
(Object entry : ((Map)mapList).entrySet()){
System.out.println(((Map.Entry)entry).getKey() +
" "
+((Map.Entry)entry).getValue());
}
}
//第八种方式
List listObjectEigh = JSONObject.parseArray(strArr,Map.
class
);
System.out.println(
"利用JSON中的parseArray方法并指定返回类型来解析json数组字符串"
);
for
(Object mapList : listObjectEigh){
for
(Object entry : ((Map)mapList).entrySet()){
System.out.println(((Map.Entry)entry).getKey() +
" "
+((Map.Entry)entry).getValue());
}
}
}
}