fastjson常用API
一、引入Maven
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.51</version>
</dependency>
二、常用场景
代码如下(示例):
基础类
public class Student {
private String name;
private int age;
public String getName() {
return name;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
API操作
/**
* 基本Api操作
*/
public static void demo1() {
String str = "{\"status\":true,\"data\":[{\"name\":\"张刚\",\"age\":\"2\"},{\"name\":\"zhanggang\",\"age\":\"3\"}],\"code\":200}";
//字符串转成JSONObject
JSONObject jsonObject = JSON.parseObject(str);
//获得JSONObject的某个属性
Boolean status = jsonObject.getBoolean("status");
//获得JSONObject里的JSONArray
JSONArray jsonArray = jsonObject.getJSONArray("data");
//JSONArray转字符串
String toJSONString = jsonArray.toJSONString();
}
/**
* json字符串转Map
*/
public static void demo2() {
String str = "{\"status\":true,\"data\":[{\"name\":\"张刚\",\"age\":\"2\"},{\"name\":\"zhanggang\",\"age\":\"3\"}],\"code\":200}";
JSONObject jsonObject = JSON.parseObject(str);
Map<String, Object> map = (Map<String, Object>) jsonObject;
Object data = map.get("data");
}
/**
* json字符串转JavaBean
*/
public static void demo3() {
String s = "{\"name\":\"张刚\",\"age\":\"2\"}";
Student student = JSON.parseObject(s, Student.class);
System.out.println(student);
}
/**
* json字符串转成List<JavaBean>的集合
*/
public static void demo4() {
String s = "[{\"name\":\"张刚\",\"age\":\"2\"},{\"name\":\"zhanggang\",\"age\":\"3\"}]";
List<Student> list = JSON.parseArray(s, Student.class);
list.stream().forEach(System.out::println);
System.out.println("------------------");
List<Map> list2 = JSON.parseArray(s, Map.class);
list2.stream().forEach(System.out::println);
}
/**
* json字符串转成List<Map>的集合
*/
public static void demo5() {
String s = "[{\"name\":\"张刚\",\"age\":\"2\"},{\"name\":\"zhanggang\",\"age\":\"3\"}]";
//第一种方式
List<Map> list1 = JSON.parseArray(s, Map.class);
list1.stream().forEach(System.out::println);
//第二种方式
List<Map<String, Object>> list2 = JSONArray.parseObject(s, List.class);
list2.stream().forEach(System.out::println);
//第三种方式
List<Map<String, Object>> list3 = (List<Map<String, Object>>) JSONArray.parse(s);
list3.stream().forEach(System.out::println);
}