json构造对应格式
步骤:类转换json字符串 ,json字符串在转换成Json对象
类转换json过程中,类中属性名定义的什么名称,转换完json对应的key就是什么
前置类
@Data
public class School {
private String name;
private String address;
private List<Teacher> teacherList;
}
@Data
public class Teacher {
private String name;
private Integer age;
private String phone;
public Teacher(String name, Integer age, String phone) {
this.name = name;
this.age = age;
this.phone = phone;
}
}
只绑定类的属性
/**
* json构造:只绑定类的属性
*/
@Test
public void test2(){
Teacher teacher=new Teacher("张三",28,"1827777888");
String jsonStr = JSONObject.toJSONString(teacher);
JSONObject jsonObjectEntity = JSONObject.parseObject(jsonStr);
JSONObject jsonObject=new JSONObject();
jsonObject.put("record",jsonObjectEntity);
System.out.println(jsonObject.toString());
//{"record":{"phone":"18279997252","name":"张三","age":28}}
}
json 构造成数组list格式
/**
* json构造:构造list
*/
@Test
public void test3(){
List<Teacher> list=new ArrayList<>();
Teacher teacher=new Teacher("张三",28,"1827777888");
Teacher teacher2=new Teacher("李四",22,"18211112222");
list.add(teacher);list.add(teacher2);
String jsonStr = JSONObject.toJSONString(list);
JSONArray objects = JSONArray.parseArray(jsonStr);
JSONObject jsonObject=new JSONObject();
jsonObject.put("recordList",objects);
System.out.println(jsonObject.toString());
//{"recordList":[{"phone":"1827777888","name":"张三","age":28},{"phone":"18211112222","name":"李四","age":22}]}
}
类中包含list
/**
* json构造:类中包含list
*/
@Test
public void test4(){
School school=new School();
school.setName("清华大学");
school.setAddress("北京海淀");
List<Teacher> list=new ArrayList<>();
Teacher teacher=new Teacher("张三",28,"1827777888");
Teacher teacher2=new Teacher("李四",22,"18211112222");
list.add(teacher);list.add(teacher2);
school.setTeacherList(list);
String jsonStr = JSONObject.toJSONString(school);
JSONObject jsonObjectSchool = JSONObject.parseObject(jsonStr);
JSONObject jsonObject=new JSONObject();
jsonObject.put("record",jsonObjectSchool);
System.out.println(jsonObject.toString());
//{"record":{"address":"北京海淀","name":"清华大学","teacherList":[{"phone":"1827777888","name":"张三","age":28},{"phone":"18211112222","name":"李四","age":22}]}}
}
list类中包含list
/**
* json构造:list类中包含list
*/
@Test
public void test5(){
School school=new School();
school.setName("清华大学");
school.setAddress("北京海淀");
List<Teacher> list=new ArrayList<>();
Teacher teacher=new Teacher("张三",28,"1827777888");
Teacher teacher2=new Teacher("李四",22,"18211112222");
list.add(teacher);list.add(teacher2);
school.setTeacherList(list);
School school2=new School();
school2.setName("北京大学");
school2.setAddress("北京海淀");
List<Teacher> list2=new ArrayList<>();
Teacher teacher3=new Teacher("王五",33,"1827777888");
Teacher teacher4=new Teacher("刘六",40,"18211112222");
list2.add(teacher3);list2.add(teacher4);
school2.setTeacherList(list2);
List<School> listSchool=new ArrayList<>();
listSchool.add(school);listSchool.add(school2);
String jsonString = JSONObject.toJSONString(listSchool);
JSONArray objects = JSONArray.parseArray(jsonString);
JSONObject jsonObjectReult=new JSONObject();
jsonObjectReult.put("schooleList",objects);
System.out.println(jsonObjectReult.toString());
//{"schooleList":[{"address":"北京海淀","name":"清华大学","teacherList":[{"phone":"1827777888","name":"张三","age":28},{"phone":"18211112222","name":"李四","age":22}]},{"address":"北京海淀","name":"北京大学","teacherList":[{"phone":"1827777888","name":"王五","age":33},{"phone":"18211112222","name":"刘六","age":40}]}]}
}
拓展
//会吧实体类中为空的部分忽略掉
String jsonString = JSONObject.toJSONString(实体类);
//{"address":"北京市海淀区北坞嘉园","age":"18","datesjc":1641560533162,"name":"测试名称","sex":"男"}
//不忽略为空部分,完整转换
String jsonString2 = JSONObject.toJSONString(实体类, SerializerFeature.WriteMapNullValue);
//{"address":"北京市海淀区北坞嘉园","age":"18","datesjc":1641560628074,"money":null,"name":"测试名称","note_seq":null,"salary":null,"sex":"男","userCourses":null}