1.首先创建一个maven项目,pom文件中添加依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.31</version>
</dependency>
2.创建一个classs类和student类
package model;
import java.util.List;
public class Classs {
private String classNo;
private List<Student> studentList;
public String getClassNo() {
return classNo;
}
public void setClassNo(String classNo) {
this.classNo = classNo;
}
public List<Student> getStudentList() {
return studentList;
}
public void setStudentList(List<Student> studentList) {
this.studentList = studentList;
}
}
package model;
public class Student {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return this.id+","+this.name;
}
}
3.使用方法
(1)字符串和JSON对象、数组的相互转化
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class JsonObjectTest {
public static void main(String[] args){
String stuJson= "{\"id\":1,\"name\":\"zhangsan\"}";
//1.字符串转为json对象
JSONObject obj= JSONObject.parseObject(stuJson);//也可使用JSON.parseObject()方法
//向对象中添加key-value
obj.put("birth","1990-10-10");
System.out.println(obj.toJSONString());//json对象转为字符串输出
//2.字符串转为json数组
String stuJsonArr= "[{\"id\":2,\"name\":\"tlisi\"}]";
JSONArray array=JSONArray.parseArray(stuJsonArr);
//json数组中添加对象
array.add(obj);
System.out.println(array.toString());
}
}
{"name":"zhangsan","birth":"1990-10-10","id":1}
[{"name":"tlisi","id":2},{"name":"zhangsan","birth":"1990-10-10","id":1}]
(2)json字符串和对象的相互转化
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import model.Classs;
import model.Student;
import java.util.ArrayList;
import java.util.List;
/**
*字符串和对象的相互转换
*/
public class Str2ObjectTest {
public static void main(String[] args){
String stuJson= "{\"id\":1,\"name\":\"zhangsan\"}";
//1.json字符串转对象
Student student=JSON.parseObject(stuJson, Student.class);
System.out.println("-------------json字符串转对象-------------");
System.out.println(student.getId());
System.out.println(student.getName());
System.out.println("-------------对象转为json字符串-------------");
//2.对象转为json字符串
String json=JSON.toJSONString(student);
System.out.println(json);
System.out.println("-------------包含list的对象-------------");
Student s1=new Student();
s1.setId("1");
s1.setName("zhangsn");
Student s2=new Student();
s2.setId("2");
s2.setName("lsi");
List<Student> studentList=new ArrayList<Student>();
studentList.add(s1);
studentList.add(s2);
Classs cls=new Classs();
cls.setClassNo("1");
cls.setStudentList(studentList);
String clsJson= JSONObject.toJSONString(cls);
System.out.println("对象转json字符串:");
System.out.println(clsJson);
System.out.println("json字符串转对象:");
Classs classs=JSON.parseObject(clsJson,Classs.class);
System.out.println(classs.getClassNo());
System.out.println(classs.getStudentList());
}
}
输出内容:
-------------json字符串转对象-------------
1
zhangsan
-------------对象转为json字符串-------------
{"id":"1","name":"zhangsan"}
-------------包含list的对象-------------
对象转json字符串:
{"classNo":"1","studentList":[{"id":"1","name":"zhangsn"},{"id":"2","name":"lsi"}]}
json字符串转对象:
1
[1,zhangsn, 2,lsi]
(3)list和json的相互转化
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import model.Student;
import java.util.ArrayList;
import java.util.List;
/**
* list和json的相互转化
*/
public class List2JsonTest {
public static void main(String[] args){
Student s1=new Student();
s1.setId("1");
s1.setName("zhangsn");
Student s2=new Student();
s2.setId("2");
s2.setName("lsi");
List<Student> studentList=new ArrayList<Student>();
studentList.add(s1);
studentList.add(s2);
//list转为json字符串
String stuJsonArr= JSONObject.toJSONString(studentList);
//将字符串再转为json数组
JSONArray array=JSONArray.parseArray(stuJsonArr);
System.out.println(array.toString());
}
}
输出结果:
[{"name":"zhangsn","id":"1"},{"name":"lsi","id":"2"}]