我有回应。当 functionType = limit 时,我需要获取 functionAmount。我这里有硬编码。如何将其转换为动态。如何从嵌套对象中过滤数据?
"users": [
{
"userId": "78888",
},
"functions": [
{
"functionCriteria": {
"functionParameter1": "GLOBAL",
"functionId": "77888"
},
"functionAuthorities": [
{
"functionType": "INITIALIZE,
"functionAmount": "250",
},
{
"functionType": "LIMIT,
"functionAmount": "2500",
}
]
}
]
}
]
String limitAmount = null;
try
{
List<UserOutput> users = userResp.getUsers();
List<FunctionAuthorityInfo> functions = users.get(0).getFunctions();
List<FunctionAuthority> functionAuthorities = functions.get(0).getFunctionAuthorities();
String functionType = functionAuthorities.get(1).getFunctionType();
if (functionType != null && "LIMIT".equalsIgnoreCase(functionType))
{
limitAmount = functionAuthorities.get(1).functionAmount();
}
return functionAuthorities.stream()
.filter(functionAuthorities -> functionAuthorities.getFunctionType().equals("LIMIT"))
.mapToInt(FunctionAuthority::getFunctionAmount)
.get();
使用 Java 的 Stream API 应该可以完成其工作,而不需要您手动导航每个
FunctionAuthority
并通过 LIMIT
语句检查它们的类型是否为 if
。