一、项目结构
一个学生类。当中学生类中能够包括Course类对象
使用Maven管理项目的能够加入fastjson的坐标:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.4</version>
</dependency>
二、数据对象转化为Json字符串
GenerateJson.java代码标识转化为json字符串
(1)将学生对象转化为json,当中学生中包括Course对象
@Test
public void testSimpleJSON(){
Student stu = new Student("xuliugen", "nan", "123123", "100");
Course course = new Course("JAVA", "xiaobin", "100");
stu.setCourse(course);
String json = JSON.toJSONString(stu);
System.out.println(json);
}
{
"course":{
"coursename":"JAVA",
"coursescore":"100",
"courseteacher":"xiaobin"
},
"password":"123123",
"score":"100",
"sex":"nan",
"username":"xuliugen"
}
(2)将一个单独的实体对象转化为json
@Test
public void testListJSON(){
JSONTest jt1 = new JSONTest("xuliugen", "nan");
JSONTest jt2 = new JSONTest("xieyan", "nv");
List<JSONTest> li = new ArrayList<JSONTest>();
li.add(jt1);
li.add(jt2);
String jsonstr = JSON.toJSONString(li);
System.out.println(jsonstr);
}
[{"name":"xuliugen","sex":"nan"},{"name":"xieyan","sex":"nv"}]
(3)将包括多个相似于(1)中的实体对象转化为json
@Test
public void testMulJSON(){
Student stu = new Student("xuliugen", "nan", "123123", "100");
Course course = new Course("JAVA", "xiaobin", "100");
stu.setCourse(course);
Student stu2 = new Student("xieyan", "nan", "123123", "100");
Course course2 = new Course("music", "qwe", "100");
stu2.setCourse(course2);
List<Student> stuList = new ArrayList<Student>();
stuList.add(stu);
stuList.add(stu2);
String json2 = JSON.toJSONString(stuList);
System.out.println(json2);
}
[
{
"course":{
"coursename":"JAVA",
"coursescore":"100",
"courseteacher":"xiaobin"
},
"password":"123123",
"score":"100",
"sex":"nan",
"username":"xuliugen"
},
{
"course":{
"coursename":"music",
"coursescore":"100",
"courseteacher":"qwe"
},
"password":"123123",
"score":"100",
"sex":"nan",
"username":"xieyan"
}
]
三、解析json数据到实体对象
(1)解析上述(1)中学生中包括Course的对象
[{"name":"xuliugen","sex":"nan"},{"name":"xieyan","sex":"nv"}]
@Test
public void testParseSimpleJSON(){
String json = "[{"name":"xuliugen","sex":"nan"},{"name":"xieyan","sex":"nv"}]";
JSONArray jsonArray = JSON.parseArray(json);
String str = jsonArray.getString(0);
JSONTest jsonTest = JSON.parseObject(str,JSONTest.class);
System.out.println(jsonTest.getSex());
}
{
"course":{
"coursename":"JAVA",
"coursescore":"100",
"courseteacher":"xiaobin"
},
"password":"123123",
"score":"100",
"sex":"nan",
"username":"xuliugen"
}
(2)因为仅仅有一个对象,解析例如以下:
@Test
public void testParseStudentIncludeCourseJSON() {
String json = "{"course":{"coursename":"JAVA","coursescore":"100","courseteacher":"xiaobin"},"password":"123123","score":"100","sex":"nan","username":"xuliugen"}";
Student stu = JSON.parseObject(json,Student.class);
System.out.println(stu.getPassword());
}
(3)将上述中的(3)当有多个上述的对象的时候,解析例如以下:
[
{
"course":{
"coursename":"JAVA",
"coursescore":"100",
"courseteacher":"xiaobin"
},
"password":"123123",
"score":"100",
"sex":"nan",
"username":"xuliugen"
},
{
"course":{
"coursename":"music",
"coursescore":"100",
"courseteacher":"qwe"
},
"password":"123123",
"score":"100",
"sex":"nan",
"username":"xieyan"
}
]
解析例如以下:
@Test
public void testParseListStudentIncludeCourseJSON() {
String json = "[{"course":{"coursename":"JAVA","coursescore":"100","courseteacher":"xiaobin"},"password":"123123","score":"100","sex":"nan","username":"xuliugen123"},{"course":{"coursename":"music","coursescore":"100","courseteacher":"qwe"},"password":"123123","score":"100","sex":"nan","username":"xieyan"}]";
JSONArray jsonArray = JSON.parseArray(json);
String str = jsonArray.getString(0);
Student stu = JSON.parseObject(str, Student.class);
System.out.println(stu.getUsername());
}