依赖fastjson
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
0、新建一个实体类
package Json;
public class Person {
private String name;
private Integer age;
public Person(String name, Integer age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
1、实体与json对象相互转换
public class jsontest {
@Test
public void test1(){
System.out.println("+++++++++++++java实体与json对象相互转换++++++++++++++");
Person person1 = new Person("zhangsan", 12);
System.out.println("实体对象:"+ person1);
System.out.println("方式一");
Object person1_json = JSONObject.toJSON(person1);
System.out.println("实体转成的json对象:"+ person1_json);
String person1_json_s = person1_json.toString();
System.out.println("json对象转成json字符串:"+person1_json_s);
System.out.println("方式二");
String str1 = JSON.toJSONString(person1);
System.out.println("实体转成的json字符串"+str1);
System.out.println("反序列化==========================================");
Person person1_1 = JSONObject.parseObject(person1_json_s, Person.class);
System.out.println("json转成的实体:"+person1_1);
}
}
输出:
+++++++++++++java实体与json对象相互转换++++++++++++++
实体对象:Person{name='zhangsan', age=12}
方式一
实体转成的json对象:{"name":"zhangsan","age":12}
json对象转成json字符串:{"name":"zhangsan","age":12}
方式二
实体转成的json字符串{"age":12,"name":"zhangsan"}
反序列化==========================================
json转成的实体:Person{name='zhangsan', age=12}
2、实体List与json对象相互转换
public class jsontest {
@Test
public void test2(){
System.out.println("++++++java实体类型的List与json对象相互转换++++++++++++");
List<Person> personlist1 = new ArrayList<>();
personlist1.add(new Person("lisi",13));
personlist1.add(new Person("wangwu",14));
System.out.println("Person实体类型的List:"+personlist1);
System.out.println("方式一");
Object personlist1_json = JSONObject.toJSON(personlist1);
System.out.println("Person实体类型的List转成的json对象:"+personlist1_json);
String personlist1_json_s = personlist1_json.toString();
System.out.println("json对象转成json字符串:"+personlist1_json_s);
System.out.println("方式二");
String str1 = JSON.toJSONString(personlist1);
System.out.println("实体转成的json字符串"+str1);
System.out.println("反序列化==========================================");
List<Person> personlist1_1 = JSONObject.parseArray(personlist1_json_s, Person.class);
System.out.println("json字符串转成的Person实体类型的List:"+personlist1_1);
}
}
输出:
++++++java实体类型的List与json对象相互转换++++++++++++
Person实体类型的List:[Person{name='lisi', age=13}, Person{name='wangwu', age=14}]
方式一
Person实体类型的List转成的json对象:[{"name":"lisi","age":13},{"name":"wangwu","age":14}]
json对象转成json字符串:[{"name":"lisi","age":13},{"name":"wangwu","age":14}]
方式二
实体转成的json字符串[{"age":13,"name":"lisi"},{"age":14,"name":"wangwu"}]
反序列化==========================================
json字符串转成的Person实体类型的List:[Person{name='lisi', age=13}, Person{name='wangwu', age=14}]
3、实体Map与json对象相互转换
在json转实体类型的Map过程中需要使用new TypeReference<>(){},定义反序列化的类型
public class jsontest {
@Test
public void test3(){
System.out.println("+++++++++java实体类型的Map与json对象相互转换+++++++++++++++");
Map<Integer,Person> personmap1 = new HashMap<>();
personmap1.put(1,new Person("zhaoliu",16));
personmap1.put(2,new Person("tianqi",17));
System.out.println("Person实体类型的Map:"+personmap1);
System.out.println("方式一");
Object personmap1_json = JSONObject.toJSON(personmap1);
System.out.println("Person实体类型的Map转成的json对象:"+personmap1_json);
String personmap1_json_s = personmap1_json.toString();
System.out.println("json对象转成json字符串:"+personmap1_json_s);
System.out.println("方式二");
String str1 = JSON.toJSONString(personmap1);
System.out.println("实体转成的json字符串"+str1);
System.out.println("反序列化==========================================");
HashMap<Integer, Person> personmap1_1 =
JSONObject.parseObject(personmap1_json_s, new TypeReference<HashMap<Integer, Person>>() {});
System.out.println("json字符串转成的Person实体类型的Map:"+personmap1_1);
}
}
输出:
+++++++++java实体类型的Map与json对象相互转换+++++++++++++++
Person实体类型的Map:{1=Person{name='zhaoliu', age=16}, 2=Person{name='tianqi', age=17}}
方式一
Person实体类型的Map转成的json对象:{"1":{"name":"zhaoliu","age":16},"2":{"name":"tianqi","age":17}}
json对象转成json字符串:{"1":{"name":"zhaoliu","age":16},"2":{"name":"tianqi","age":17}}
方式二
实体转成的json字符串{1:{"age":16,"name":"zhaoliu"},2:{"age":17,"name":"tianqi"}}
反序列化==========================================
json字符串转成的Person实体类型的Map:{1=Person{name='zhaoliu', age=16}, 2=Person{name='tianqi', age=17}}