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

问题描述 投票: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.