如何从响应中的对象列表中过滤数据?

问题描述 投票:0回答:1

我有回应。当 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();
    }
java arraylist
1个回答
0
投票
return functionAuthorities.stream()
        .filter(functionAuthorities -> functionAuthorities.getFunctionType().equals("LIMIT"))
        .mapToInt(FunctionAuthority::getFunctionAmount)
        .get();

使用 Java 的 Stream API 应该可以完成其工作,而不需要您手动导航每个

FunctionAuthority
并通过
LIMIT
语句检查它们的类型是否为
if

© www.soinside.com 2019 - 2024. All rights reserved.