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) 也允许包含一个字段。对于其他框架,您应该查看它们的文档。
我的应用程序中有一个 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) 也允许包含一个字段。对于其他框架,您应该查看它们的文档。