【发布时间】:2021-04-27 08:28:09
【问题描述】:
我有一个这样的 JSON:
{
"types":[
{
"slot":1,
"type":{
"name":"grass",
"url":"https://pokeapi.co/api/v2/type/12/"
}
},
{
"slot":2,
"type":{
"name":"poison",
"url":"https://pokeapi.co/api/v2/type/4/"
}
}
]
}
我只需要类型的名称,所以我想要这样的东西:
public class MainClass {
private List<String> types;
}
我想避免创建嵌套类。我怎样才能得到这个结果?
【问题讨论】:
-
为什么,特别是,您要避免创建更多类?
-
“类型”是口袋妖怪类的一个字段。我想轻松地遍历特定口袋妖怪所具有的类型。
-
您还没有解释为什么要避免创建
List<Type>。 -
因为这样我就可以使用
types.contains(name)来检查特定口袋妖怪是否具有给定类型,并且不需要遍历所有类型列表并检查每个 Type.name 是否等于给定类型。 -
也许此时您应该只使用 JsonPath(尽管我不会三思而后行
types.stream().filter(t -> name.equals(t.getName()).findFirst(),或者 Groovy 中更干净的types.find { it.name == name })。