Spring 启动控制器 json 响应有一个字段名称 "empty"

Spring boot Controller json response has a field name "empty"

我的应用程序中有一个 GET 端点应该 return :

{
  "gameId": "41a483c4-6220-424a-a931-d9114a4f6748",
  "pits": [
    {
      "id": 1,
      "stones": 6
    },
    {
      "id": 2,
      "stones": 6
    },
    {
      "id": 3,
      "stones": 6
    },
    {
      "id": 4,
      "stones": 6
    },
    {
      "id": 5,
      "stones": 6
    },
    {
      "id": 6,
      "stones": 6
    },
    {
      "id": 7,
      "stones": 0
    },
    {
      "id": 8,
      "stones": 6
    },
    {
      "id": 9,
      "stones": 6
    },
    {
      "id": 10,
      "stones": 6
    },
    {
      "id": 11,
      "stones": 6
    },
    {
      "id": 12,
      "stones": 6
    },
    {
      "id": 13,
      "stones": 6
    },
    {
      "id": 14,
      "stones": 0
    }
  ],
  "playerTurn": null,
  "currentPitIndex": 0
}

而是 returns:

{
    "id": "25f09303-b797-418f-a7e7-db0e5fa8631b",
    "pits": [
        {
            "stones": 6,
            "empty": false
        },
        {
            "stones": 6,
            "empty": false
        },
        {
            "stones": 6,
            "empty": false
        },
        {
            "stones": 6,
            "empty": false
        },
        {
            "stones": 6,
            "empty": false
        },
        {
            "stones": 6,
            "empty": false
        },
        {
            "stones": 0,
            "empty": true
        },
        {
            "stones": 6,
            "empty": false
        },
        {
            "stones": 6,
            "empty": false
        },
        {
            "stones": 6,
            "empty": false
        },
        {
            "stones": 6,
            "empty": false
        },
        {
            "stones": 6,
            "empty": false
        },
        {
            "stones": 6,
            "empty": false
        },
        {
            "stones": 0,
            "empty": true
        }
    ],
    "playerTurn": null,
    "currentPitIndex": null
}

我想知道什么是“空”?! “id”在哪里!

如有任何建议和帮助,我们将不胜感激。 谢谢

你的 class 有一个叫做 isEmpty() 的方法吗?因为大多数 JSON 编组框架为任何具有 0 个参数且以 get 开头的方法添加 JSON 属性,或者 returns 一个布尔值并以 is 开头。出于同样的原因,id 可能丢失了 - 我猜没有 getter。顶层 gameId 可能被称为 id 因为你有一个 getId() 方法,而不是 getGameId() 方法。

对于大多数框架,您可以使用注释对其进行调整。例如,对于 Jackon,您可以使用 @JsonIgnore 来指示方法不应表示为 JSON 属性,并且 @JsonProperty 可用于 a) 添加自定义名称, 或 b) 也允许包含一个字段。对于其他框架,您应该查看它们的文档。