本文是利用阿里巴巴封裝的FastJSON來轉換json字符串的。例子如下:
- 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);
- }
- }
-
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);
}
}
總結
JSON實際上是實現Map接口的子類,因此開發中要傳入的參數是java.util.Map格式的實例,可以直接傳JSONObject對象