我不知道这是一个Spring问题还是杰克逊,但请看到它:
{
"usersClients": [
{
"pkUsersClients": {
"id": 2,
"user": {
"idUser": 31,
"login": "EditUser",
"pwd": "$2a$10$7G/GWrd5...",
"locked": "F",
"avatar": null
},
"client": {
"idClient": 1,
"name": "SOCIETY 1",
"description": "TEST 1",
"logo": "/9j/4QDCRXh..."
}
},
"date_begin": null,
"date_end": null,
"enable": false,
"user": 31,
"idClient": 1
},
{
"pkUsersClients": {
"id": 3,
"user": 31,
"client": 1
},
"date_begin": 1464818400000,
"date_end": null,
"enable": false,
"user": 31,
"idClient": 1
},
{
"pkUsersClients": {
"id": 4,
"user": 31,
"client": {
"idClient": 5,
"name": "SOCIETY 99",
"description": "TEST99",
"logo": "iVBORw0KGgoAAAANSUh..."
}
},
"date_begin": 1464818400000,
"date_end": 1467237600000,
"enable": false,
"user": 31,
"idClient": 5
}
]
}
如您所见,首先pkUsersClients拥有用户和客户端,其中包含登录名或姓名等信息。最后的pkUsersClients也是。但第二个,因为它具有相同的id和用户的第一个pkUsersClients,信息没有开发:/
你知道为什么吗?感谢
答案 0 :(得分:1)
我不是Java开发人员,但看起来您正在使用@JsonIdentityInfo
或类似的东西,只是序列化第一次出现的子对象,然后使用id。
我的猜测是,这用于限制发送的数据量和/或处理循环对象图的情况(当子对象具有回溯到父对象的引用时)。
尝试删除@JsonIdentityInfo
并查看是否在没有它的情况下获得预期的输出。
如果您有循环对象引用,则可能需要保留@JsonIdentityInfo
并在客户端上手动处理id - 对象映射。