fastjson是阿里巴巴软件工程师创造的数据解析方式,比json快十倍大概,并且,现在的安卓都用这个,是个趋势!
我们都知道map集合是key-value:
比如:Map<String,Object> dataMap = new HashMap<String,Object>();
dataMap.put("tag","data");
dataMap.put("hospitalName","宜都市妇幼保健院");
dataMap.put("name","欧阳夏凡");
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")
public static Map<String,Object> json2Map(String json){
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数据都行。