【发布时间】:2020-06-17 11:30:59
【问题描述】:
我得到了一个对象映射的响应,但它们都有相同的键:
{
"hits": [
{
"recipe": {
"id" : "0",
"label" : "chicken noodles",
...
},
"another_field": "value"
},
{
"recipe": {
"id" : "1",
"label" : "fried chicken",
...
},
"another_field": "value"
},
{ "recipe": {...}, ... }
]
}
我的宝乔:
public class SearchRecipeResponse {
private List<RecipeResponse> hits;
public List<RecipeResponse> getHits() {
return hits;
}
}
public class RecipeResponse{
private String label;
...
getters, etc
}
结果以对象列表的形式出现,但所有对象均为空,因为 json 有效负载具有此密钥“配方”。
【问题讨论】:
-
这不是地图,它是配方对象的列表,还请解释你的问题更多什么是用例?如果它是一个 list 代替 map ,它会如何影响?还是没有唯一键?
-
这不是一个对象列表。对象列表为:[ {}, {}, {}]。这更像是 [ "key": {} , "key": {}, "key": {}]
-
hitsjson 中recipe对象的列表。您还需要向您的类添加 json 注释,以将 RecipeResponse 映射到 recipe 或将响应类重命名为 Recipe。 -
根据当前的 JSON 结构,您将获得类似 List
=> Map 但正如您所提到的,您将获得相同的密钥,因此您可以捆绑它们并创建一个与键对应的列表。 -
示例中有一个错误,
{之一永远不会关闭。不确定这是导致问题的原因还是只是一个错字。
标签: java jackson restful-url