FastJson的基本用法
前言
阿里巴巴的fastjson这个JSON解析器和生成器大家一定不陌生的吧,前后端分离开发的时候,后端要给前端返回JSON字符串,后端解析前端传来的JSON字符串,可以使用fastjson来解析和生成JSON字符串,现在总结一下fastjson的具体用法。
引入maven依赖
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
将JavaBean对象转换成JSON字符串
/**
* 将JavaBean对象转换成JSON字符串
* @return
*/
public String javaBeanToJsonString(Person person){
String personStr = JSON.toJSONString(person);
return personStr;
}
运行测试
public static void main(String[] args) {
Person person = new Person(1,"张三", 23, "13102151514");
FastJsonTest fastJsonTest = new FastJsonTest();
String personStr = fastJsonTest.javaBeanToJsonString(person);
System.out.println(personStr);
}
运行结果
将JSON字符串转换成JavaBean对象
/**
* 将JSON字符串转换成JavaBean对象
* @param personStr
* @return
*/
public Person jsonStringToJavaBean(String personStr) {
Person person = JSON.parseObject(personStr, Person.class);
return person;
}
运行测试
public static void main(String[] args) {
Person person = new Person(1,"张三", 23, "13102151514");
FastJsonTest fastJsonTest = new FastJsonTest();
String personStr = fastJsonTest.javaBeanToJsonString(person);
Person person2 = fastJsonTest.jsonStringToJavaBean(personStr);
System.out.println(person2);
}
运行结果
将JavaBean转换成JSONObject对象
/**
* 将JavaBean转换成JSONObject对象
* @param person
* @return
*/
public JSONObject javaBeanToJsonObject(Person person) {
JSONObject jsonObject = (JSONObject) JSON.toJSON(person);
return jsonObject;
}
运行测试
public static void main(String[] args) {
Person person = new Person(1,"张三", 23, "13102151514");
FastJsonTest fastJsonTest = new FastJsonTest();
JSONObject jsonObject = fastJsonTest.javaBeanToJsonObject(person);
System.out.println(jsonObject);
}
运行结果
将JsonObject对象转换成JavaBean对象
/**
* 将JsonObject对象转换成JavaBean对象
* @param jsonObject
* @return
*/
public Person JsonObjectToJavaBean(JSONObject jsonObject) {
Person person = JSON.toJavaObject(jsonObject, Person.class);
return person;
}
运行测试
public static void main(String[] args) {
Person person = new Person(1,"张三", 23, "13102151514");
FastJsonTest fastJsonTest = new FastJsonTest();
JSONObject jsonObject = fastJsonTest.javaBeanToJsonObject(person);
Person person2 = fastJsonTest.JsonObjectToJavaBean(jsonObject);
System.out.println(person2);
}
运行结果
将List集合转换成JsonArray数组
/**
* 将List集合转换成JsonArray数组
* @param personList
* @return
*/
public JSONArray javaListToJsonArray(List<Person> personList) {
JSONArray jsonArray = (JSONArray) JSON.toJSON(personList);
return jsonArray;
}
运行测试
public static void main(String[] args) {
Person person = new Person(1,"张三", 23, "13102151514");
Person person2 = new Person(2,"李四", 24, "13102151524");
List<Person> list = new ArrayList<>();
list.add(person);
list.add(person2);
FastJsonTest fastJsonTest = new FastJsonTest();
JSONArray jsonArray = fastJsonTest.javaListToJsonArray(list);
System.out.println(jsonArray);
}
运行结果
将JsonArray数组转换成List集合
/**
* 将JsonArray数组转换成List集合
* @param jsonArray
* @return
*/
public List<Person> jsonArrayToJavaList(JSONArray jsonArray) {
List<Person> personList = new ArrayList<>();
for (int i = 0; i < jsonArray.size(); i++) {
Person person = JSON.toJavaObject(jsonArray.getJSONObject(i), Person.class);
personList.add(person);
}
return personList;
}
运行测试
public static void main(String[] args) {
Person person = new Person(1,"张三", 23, "13102151514");
Person person2 = new Person(2,"李四", 24, "13102151524");
List<Person> list = new ArrayList<>();
list.add(person);
list.add(person2);
FastJsonTest fastJsonTest = new FastJsonTest();
JSONArray jsonArray = fastJsonTest.javaListToJsonArray(list);
List<Person> listPerson = fastJsonTest.jsonArrayToJavaList(jsonArray);
System.out.println(listPerson);
}
运行结果
总结
以上就是fastjson几种常用的方法,map集合转换成JSON字符串的方法和上面的方法类似,大家可以自己去试一试。