json没有重复相同的信息

时间:2016-06-02 15:29:29

标签: angularjs jackson spring-data-jpa

我不知道这是一个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,信息没有开发:/

你知道为什么吗?感谢

1 个答案:

答案 0 :(得分:1)

我不是Java开发人员,但看起来您正在使用@JsonIdentityInfo或类似的东西,只是序列化第一次出现的子对象,然后使用id。

我的猜测是,这用于限制发送的数据量和/或处理循环对象图的情况(当子对象具有回溯到父对象的引用时)。

尝试删除@JsonIdentityInfo并查看是否在没有它的情况下获得预期的输出。

如果您有循环对象引用,则可能需要保留@JsonIdentityInfo并在客户端上手动处理id - 对象映射。