fastjson常用方法
简介
Fastjson是一个Java语言编写的高性能功能完善的JSON库。fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson。并且还超越了google的二进制协议protocol buf。Fastjson完全支持http://json.org的标准,也是官方网站收录的参考实现之一。支持各种JDK类型。包括基本类型、JavaBean、Collection、Map、Enum、泛型等。支持JDK 5、JDK 6、Android、阿里云手机等环境。
4种常用类型:JavaBean,List<JavaBean>,List<String>,List<Map<String,Object>
示例代码
package com.yuanyuan;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
public class FastJsonTest {
/**
* javabean转json
*
* 运行结果{"name":"奥迪","price":300000}
*/
@Test
public void obj2Json(){
Car car = new Car();
car.setName("奥迪");
car.setPrice(300000.00);
String carStr = JSON.toJSONString(car);
System.out.println(carStr);
}
/**
* 数组转json
*
* 运行结果[{"name":"奥迪","price":300000},{"name":"大众","price":100000}]
*/
@Test
public void array2Json(){
Car car1 = new Car("奥迪",300000.00);
Car car2 = new Car("大众",100000.00);
Car[] carArr = {car1,car2};
String carStr = JSON.toJSONString(carArr);
System.out.println(carStr);
}
/**
* list转Json
*
* 运行结果[{"name":"奥迪","price":300000},{"name":"大众","price":100000}]
*/
@Test
public void list2Json(){
Car car1 = new Car("奥迪",300000.00);
Car car2 = new Car("大众",100000.00);
List<Car> list = new ArrayList<>();
list.add(car1);
list.add(car2);
String listStr = JSON.toJSONString(list);
System.out.println(listStr);
}
/**
* map转Json
*
* 运行结果{"car2":{"name":"大众","price":100000},"car1":{"name":"奥迪","price":300000}}
*/
@Test
public void map2Json(){
Car car1 = new Car("奥迪",300000.00);
Car car2 = new Car("大众",100000.00);
Map<String, Car> map = new HashMap<>();
map.put("car1", car1);
map.put("car2", car2);
String mapStr = JSON.toJSONString(map);
System.out.println(mapStr);
}
/**
* Json转javabean
*
* 运行结果 Car [name=大众, price=100000.0]
*/
@Test
public void json2Javabean(){
String jsonStr = "{'name':'大众','price':100000}";
Car car = JSON.parseObject(jsonStr, Car.class);
System.out.println(car);
}
/**
* Json转数组
*
* 运行结果["aaa","bbb","ccc"]
*/
@Test
public void json2Array(){
String jsonStr = "['aaa','bbb','ccc']";
JSONArray jsonArray = JSON.parseArray(jsonStr);
System.out.println(jsonArray);
}
/**
* Json转对应的javabean集合
*
* 运行结果Car [name=奥迪, price=300000.0] Car [name=大众, price=100000.0]
*/
@Test
public void json2List(){
String jsonStr = "[{'name':'奥迪','price':300000},{'name':'大众','price':100000}]";
List<Car> parseList = JSON.parseArray(jsonStr, Car.class);
for (Car car : parseList) {
System.out.println(car);
}
}
}
常用方法总结
//可以将javabean,Array,List等转成Json
JSON.toJSONString()
//将json串转成相应的Javabean对象
JSON.parseObject(String, Class)
//将json串转成jsonArray
JSON.parseArray(String)
//将json串转成对应发Javabean集合
JSON.parseArray(String, Class)