java对象转json fastjson_Java对象转换成Json的时候出现信息丢失转换不完全的问题...

Java对象转换成Json的时候出现信息丢失问题:

其实准确的说不叫信息丢失,只是没有完全序列化:打印出来就成了如下信息:

"$ref": "$.collegeBeanList[0].majorBeanList[0].teacherBeanList[0]"

通过fastjson得到的Json格式:

{

"collegeBeanList": [

{

"college_code": "CNCQ0001-CQU000",

"college_id": 0,

"college_name": "重庆大学电子工程学院",

"collgee_description": "这是重庆大学的电子工程学院",

"majorBeanList": [

{

"major_code": "CNCQ0001-CQU001-000",

"major_description": "这是重庆大学的电子工程学院的自动化专业",

"major_id": 0,

"major_name": "重庆大学电子工程学院的自动化专业",

"teacherBeanList": [

{

"teacher_age": 35,

"teacher_code": "CNCQ0001-CQU001-001-00",

"teacher_description": "重大自动化专业的刘老师",

"teacher_id": 0,

"teacher_name": "刘老师"

},

{

"teacher_age": 35,

"teacher_code": "CNCQ0001-CQU001-001-01",

"teacher_description": "重大自动化专业的刘老师",

"teacher_id": 1,

"teacher_name": "刘老师"

}

]

},

{

"major_code": "CNCQ0001-CQU001-001",

"major_description": "这是重庆大学的电子工程学院的自动化专业",

"major_id": 1,

"major_name": "重庆大学电子工程学院的自动化专业",

"teacherBeanList": [

{

"$ref": "$.collegeBeanList[0].majorBeanList[0].teacherBeanList[0]"

},

{

"$ref": "$.collegeBeanList[0].majorBeanList[0].teacherBeanList[1]"

}

]

}

]

},

{

"college_code": "CNCQ0001-CQU001",

"college_id": 1,

"college_name": "重庆大学电子工程学院",

"collgee_description": "这是重庆大学的电子工程学院",

"majorBeanList": [

{

"$ref": "$.collegeBeanList[0].majorBeanList[0]"

},

{

"$ref": "$.collegeBeanList[0].majorBeanList[1]"

}

]

}

],

"u_code": "CNCQ0001",

"u_description": "这是重庆最好的大学",

"u_id": 1,

"u_name": "重庆大学"

}

通过Jackson得到的Json格式:

{

"u_id": 1,

"u_code": "CNCQ0001",

"u_name": "重庆大学",

"u_description": "这是重庆最好的大学",

"collegeBeanList": [

{

"college_id": 0,

"college_code": "CNCQ0001-CQU000",

"college_name": "重庆大学电子工程学院",

"collgee_description": "这是重庆大学的电子工程学院",

"majorBeanList": [

{

"major_id": 0,

"major_code": "CNCQ0001-CQU001-000",

"major_name": "重庆大学电子工程学院的自动化专业",

"major_description": "这是重庆大学的电子工程学院的自动化专业",

"teacherBeanList": [

{

"teacher_id": 0,

"teacher_code": "CNCQ0001-CQU001-001-00",

"teacher_name": "刘老师",

"teacher_age": 35,

"teacher_description": "重大自动化专业的刘老师"

},

{

"teacher_id": 1,

"teacher_code": "CNCQ0001-CQU001-001-01",

"teacher_name": "刘老师",

"teacher_age": 35,

"teacher_description": "重大自动化专业的刘老师"

}

]

},

{

"major_id": 1,

"major_code": "CNCQ0001-CQU001-001",

"major_name": "重庆大学电子工程学院的自动化专业",

"major_description": "这是重庆大学的电子工程学院的自动化专业",

"teacherBeanList": [

{

"teacher_id": 0,

"teacher_code": "CNCQ0001-CQU001-001-00",

"teacher_name": "刘老师",

"teacher_age": 35,

"teacher_description": "重大自动化专业的刘老师"

},

{

"teacher_id": 1,

"teacher_code": "CNCQ0001-CQU001-001-01",

"teacher_name": "刘老师",

"teacher_age": 35,

"teacher_description": "重大自动化专业的刘老师"

}

]

}

]

},

{

"college_id": 1,

"college_code": "CNCQ0001-CQU001",

"college_name": "重庆大学电子工程学院",

"collgee_description": "这是重庆大学的电子工程学院",

"majorBeanList": [

{

"major_id": 0,

"major_code": "CNCQ0001-CQU001-000",

"major_name": "重庆大学电子工程学院的自动化专业",

"major_description": "这是重庆大学的电子工程学院的自动化专业",

"teacherBeanList": [

{

"teacher_id": 0,

"teacher_code": "CNCQ0001-CQU001-001-00",

"teacher_name": "刘老师",

"teacher_age": 35,

"teacher_description": "重大自动化专业的刘老师"

},

{

"teacher_id": 1,

"teacher_code": "CNCQ0001-CQU001-001-01",

"teacher_name": "刘老师",

"teacher_age": 35,

"teacher_description": "重大自动化专业的刘老师"

}

]

},

{

"major_id": 1,

"major_code": "CNCQ0001-CQU001-001",

"major_name": "重庆大学电子工程学院的自动化专业",

"major_description": "这是重庆大学的电子工程学院的自动化专业",

"teacherBeanList": [

{

"teacher_id": 0,

"teacher_code": "CNCQ0001-CQU001-001-00",

"teacher_name": "刘老师",

"teacher_age": 35,

"teacher_description": "重大自动化专业的刘老师"

},

{

"teacher_id": 1,

"teacher_code": "CNCQ0001-CQU001-001-01",

"teacher_name": "刘老师",

"teacher_age": 35,

"teacher_description": "重大自动化专业的刘老师"

}

]

}

]

}

]

}

下面是数据生成:

package test.com.ldc.json.practice;

import java.util.ArrayList;

import java.util.List;

import com.alibaba.fastjson.JSON;

import com.fasterxml.jackson.core.JsonProcessingException;

import com.fasterxml.jackson.databind.ObjectMapper;

import test.com.ldc.json.bean.CollegeBean;

import test.com.ldc.json.bean.MajorBean;

import test.com.ldc.json.bean.TeacherBean;

import test.com.ldc.json.bean.UniversityBean;

public class GenerateData {

/**

* 产生大学University对象

*

* @return

*/

public static UniversityBean generateUniversity() {

UniversityBean universityBean = new UniversityBean(1, "CNCQ0001", "重庆大学", "这是重庆最好的大学", null);

return universityBean;

}

/**

* 产生学院College对象

*

* @return

*/

public static CollegeBean generateCollege() {

CollegeBean collegeBean = new CollegeBean(1, "CNCQ0001-CQU001", "重庆大学电子工程学院", "这是重庆大学的电子工程学院", null);

return collegeBean;

}

/**

* 产生专业Major对象

*

* @return

*/

public static MajorBean generateMajor() {

MajorBean majorBean = new MajorBean(1, "CNCQ0001-CQU001-001", "重庆大学电子工程学院的自动化专业", "这是重庆大学的电子工程学院的自动化专业", null);

return majorBean;

}

/**

* 产生教师Teacher对象

*

* @return

*/

public static TeacherBean generateTeacher() {

TeacherBean teacherBean = new TeacherBean(1, "CNCQ0001-CQU001-001-01", "刘老师", 35, "重大自动化专业的刘老师");

return teacherBean;

}

/**

* 将上面的各项数据关联起来

*

* @return

*/

public static UniversityBean generateAssociateData() {

UniversityBean universityBean = generateUniversity();

List collegeBeanList = new ArrayList();

List majorBeanList = new ArrayList();

List teacherBeanList = new ArrayList();

int college_num = 2;

int major_num = 2;

int teacher_num = 2;

for (int teacher = 0; teacher < teacher_num; teacher++) {

TeacherBean teacherBean = generateTeacher();

teacherBean.setTeacher_id(teacher);

teacherBean.setTeacher_code("CNCQ0001-CQU001-001-0" + teacher);

teacherBeanList.add(teacherBean);

}

for (int major = 0; major < major_num; major++) {

MajorBean majorBean = generateMajor();

majorBean.setMajor_id(major);

majorBean.setMajor_code("CNCQ0001-CQU001-00" + major);

majorBean.setTeacherBeanList(teacherBeanList);

majorBeanList.add(majorBean);

}

for (int college = 0; college < college_num; college++) {

CollegeBean collegeBean = generateCollege();

collegeBean.setCollege_id(college);

collegeBean.setCollege_code("CNCQ0001-CQU00" + college);

collegeBean.setMajorBeanList(majorBeanList);

collegeBeanList.add(collegeBean);

}

universityBean.setCollegeBeanList(collegeBeanList);

return universityBean;

}

/**

* 通过fastjson生成Json对象

*

* @return

*/

public static String UniversityToJson_ByFastJson() {

Object object = generateAssociateData();

String university_json = JSON.toJSONString(object);

return university_json;

}

/**

* 通过Jackson生成Json对象

*

* @return

*/

public static String UniversityToJson_ByJackson() {

Object object = generateAssociateData();

ObjectMapper objectMapper = new ObjectMapper();

try {

return objectMapper.writeValueAsString(object);

} catch (JsonProcessingException e) {

e.printStackTrace();

}

return objectMapper.toString();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值