Gson功能比fastjson强大,反序列化速度却没fastJson快
建议to JSON使用gson,to Object使用fastjson
Gson
1、导包
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
2、使用
/**
* Created on 2019/4/7.
*
* @author Grak
* @since 1.0
*/
public class GsonUse02 {
private String name = "玉帝";
/**
* 创建Gson
*/
public void creat(){
//普通创建
Gson gson = new Gson();
//自定义创建(设置控制参数)
Gson gsonBuilder = new Gson().newBuilder()
.disableHtmlEscaping()//过滤HTML标签
.disableInnerClassSerialization()//不解析内部类
.serializeNulls()//显示null的参数
.setDateFormat("yyyy-MM-dd")//日期格式化
.setPrettyPrinting()//格式化输出
.create();
}
public void use(){
Gson gson = new Gson();
//把java对象序列化成json
String json = gson.toJson(new LinkedList<>());
//json转换成对象或变量
//json转变量
String jsonInt = "5";
System.out.println(gson.fromJson(jsonInt,int.class));
//json转对象
System.out.println(gson.fromJson("{\"name\":\"玉帝\"}",GsonUse02.class));
//json转复杂对象
List<Map<String, GsonUse02>> list = gson.fromJson("对应json数据",new TypeToken<List<Map<String, GsonUse02>>>(){}.getType());
}
/**
* 注解说明
* @SerializedName("email_address") 属性重命名,指定的制端解析成想要的名字
*
* @SerializedName(value = "script_mess", alternate = {"script", "mess"})
* 会按照第一个解析,出现这几个名字都会解析到同一个对象中
*/
private class User {
//省略其它
public String name = "用户";
public int age = 100;
@SerializedName("email_address")
public String emailAddress = "澜山";
@SerializedName(value = "script_mess", alternate = {"script", "mess"})
public String scriptMess = "黄昏";
public String type;
}
}
fastjson
// 把JSON文本parse为JSONObject或者JSONArray
public static final Object parse(String text);
// 把JSON文本parse成JSONObject
public static final JSONObject parseObject(String text);
// 把JSON文本parse为JavaBean
public static final <T> T parseObject(String text, Class<T> clazz);
// 把JSON文本parse成JSONArray
public static final JSONArray parseArray(String text);
//把JSON文本parse成JavaBean集合
public static final <T> List<T> parseArray(String text, Class<T> clazz);
// 将JavaBean序列化为JSON文本
public static final String toJSONString(Object object);
// 将JavaBean序列化为带格式的JSON文本
public static final String toJSONString(Object object, boolean prettyFormat);
//将JavaBean转换为JSONObject或者JSONArray
public static final Object toJSON(Object javaObject);
String body = JSON.toJSON(paramMap).toString();