1.我这里使用的是阿里的fastjson的jar包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.53</version>
</dependency>
2.我们先生成一个Student类
package com.it.model;
public class Student {
private String name;
private int age;
private String sex;
private double score;
public Student(String name, int age, String sex, double score) {
this.name = name;
this.age = age;
this.sex = sex;
this.score = score;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("Student{");
sb.append("name='").append(name).append('\'');
sb.append(", age=").append(age);
sb.append(", sex='").append(sex).append('\'');
sb.append(", score=").append(score);
sb.append('}');
return sb.toString();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
}
2.我们先来进行对象转换成json
下面是我们的测试代码
@Test
public void testObj2Json(){
Student student = new Student("wen",23,"男",98.5);
String s = JSONObject.toJSONString(student);
System.out.println(s);
}
测试结果如下:
{"age":23,"name":"wen","score":98.5,"sex":"男"}
3.json转换成对象
@Test
public void testJson2Object(){
String str = "{\"age\":23,\"name\":\"wen\",\"score\":98.5,\"sex\":\"男\"}";
Student student = JSONObject.parseObject(str, Student.class);
System.out.println(student);
}
测试结果如下:
Student{name='wen', age=23, sex='男', score=98.5}
4.array转换成json
@Test
public void testArray2Json(){
ArrayList<Student> students = new ArrayList<>();
for (int i = 1; i < 5; i++) {
Student student = new Student("wen"+i,23+i,"男",98.5-i);
students.add(student);
}
String s = JSONObject.toJSONString(students);
System.out.println(s);
}
测试结果如下:
[{"age":24,"name":"wen1","score":97.5,"sex":"男"},{"age":25,"name":"wen2","score":96.5,"sex":"男"},{"age":26,"name":"wen3","score":95.5,"sex":"男"},{"age":27,"name":"wen4","score":94.5,"sex":"男"}]
5.json转换成array
@Test
public void testJson2Array(){
String str = "[{\"age\":24,\"name\":\"wen1\",\"score\":97.5,\"sex\":\"男\"},{\"age\":25,\"name\":\"wen2\",\"score\":96.5,\"sex\":\"男\"},{\"age\":26,\"name\":\"wen3\",\"score\":95.5,\"sex\":\"男\"},{\"age\":27,\"name\":\"wen4\",\"score\":94.5,\"sex\":\"男\"}]";
List<Student> students = JSONObject.parseArray(str, Student.class);
for (Student student : students) {
System.out.println(student);
}
}
测试结果如下:
Student{name='wen1', age=24, sex='男', score=97.5}
Student{name='wen2', age=25, sex='男', score=96.5}
Student{name='wen3', age=26, sex='男', score=95.5}
Student{name='wen4', age=27, sex='男', score=94.5}
从这里可以看出来,fastjson使用比原的json好用多了,这我们可以自己写一个工具类方便我们以后来使用.