背景:
json解析的工具很多,有谷歌的GSON,jackson,fastjson,综合各种博客对比,alibaba的fastjson是最快的,故后期主要用这个进行解析。
fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
常用的方法为:
1、string转换成json格式对象(parse开头)
//通用型
public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray
//转换成JSONObject
public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject
public static final T parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean
//转换成JSONArray
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray
public static final List parseArray(String text, Class clazz); //把JSON文本parse成JavaBean集合
2. json对象转换成string(toJSON开头)
public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本
public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本
3.javabean转换JSON对象
public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。
复杂json格式,需要先构建一个javabean,假如json格式为:
{
"status": "2000",
"msg": "Successful!",
"ret":{"error","succ"},
"data":[{"details": "111"},{details:"287"}]
}
构建的javabean则为:
public class demo
{
private String status;
private String msg;
private Ret ret;
public class Ret
{
private String error;
//自动生成getter和setter}
private List<datalist> data;
public class datalist
{
private String details;
//自动生成getter和setter
}
//自动生成getter和setter
public String getStatus(){return status;}
public void setStatus(String status){this.status = status;}
public String getMsg(){return msg;}
public void setMsg(String msg){this.msg = msg;}
public Ret getRet(){return ret;}
public void setRet(Ret ret){this.ret = ret;}
public ListgetData(){return data;}
public void setData(Listdata)
然后用eclipse 生成getter 和setter方法,这样便可以将上述json进行一一对应解析。