fastjson與map之間的轉換
fastjson是阿里巴巴軟體工程師創造的資料解析方式,比json快十倍大概,並且,現在的安卓都用這個,是個趨勢!
我們都知道map集合是key-value:
比如:Map<String,Object> dataMap = new HashMap<String,Object>();
dataMap.put("tag", "data");
dataMap.put("hospitalName", "宜都市婦幼保健院");
dataMap.put("gender", "女");
dataMap.put("age", "28");
dataMap.put("code", "420502042");
dataMap.put("examineDoc", "楊林");
dataMap.put("examineDate", "2016-05-10");
dataMap.put("verifyDoc", "王菲");
System.out.println(dataMap);
列印:{examineDoc=楊林, verifyDoc=王菲, tag=data, examineDate=2016-05-10, age=28, name=歐陽夏凡, hospitalName=宜都市婦幼保健院, gender=女, code=420502042}
那麼問題1來了,怎麼將這個資料轉換成:{“examineDoc”:“j楊林”,"verifyDoc":"王菲"....}
解決:1、其實很簡單,首先匯入fastjson的開發包:https://sourceforge.net/projects/fastjson/files/?source=navbar,進去網址直接下載“.jar”的檔案即可。
2、然後寫一個工具類:package utils;
import java.util.Map;
import com.alibaba.fastjson.JSON;
public class JsonUtils {
@SuppressWarnings("unchecked")
return JSON.parseObject(json, Map.class);
}
public static String obj2JsonString(Object obj){
return JSON.toJSONString(obj);
}
}
String str = JsonUtils.obj2JsonString(dataMap);
System.out.println(str);
列印結果:{"age":"28","code":"420502042","examineDate":"2016-05-10","examineDoc":"楊林","gender":"女","hospitalName":"宜都市婦幼保健院","name":"歐陽夏凡","tag":"data","verifyDoc":"王菲"}
你可以把這個資料變成json,就可以往裡面新增資料;
或者變成jsonArray,看具體任務需求,和方便程度吧。
問題2:如果要把:String aa = "{\"name\":\"jack\",\"age\":\"20\"}";轉成:{age=20, name=jack}怎麼辦呢?
String aa = "{\"name\":\"jack\",\"age\":\"20\"}";
Map<String,Object> bb = JsonUtils.json2Map(aa);
System.out.println(bb);//{age=20, name=jack}
然後就可以進行其他的操作了,比如往map中put資料都行。
再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!https://blog.csdn.net/jiangjunshow