Return 从 AWS Lambda 函数缩进 JSON?

Return indented JSON from AWS Lambda function?

我在 java 中设置了我的 lambda 函数:

public class Handler implements RequestHandler <Request, List <Response>>
{
    public List <Response> handleRequest (Request request, Context context)
    {                       
        List <Response> userList = new ArrayList <Response>();

        for (int i = 0; i < values.length; i++)
        {
            Response user = new Response();
            user.setUserID (Integer.parseInt (values[i][0]));
            user.setUserTypeName (values[i][1]);
            user.setUserEmail (values[i][2]);
            user.setUserFirstName (values[i][3]);
            user.setUserLastName (values[i][4]);
            user.setUserRole (values[i][5]);
            user.setActiveYN (values[i][6]);
            userList.add (user);
        }
        return userList;
    }
}

AWS API 网关做它的事情,它 return 是一个虚拟对象数组就好了:

[{"userID":1,"userTypeName":"Adminstrator","userEmail":"joesmiley@gmail.com","userFirstName":"Joe","userLastName":"Smiley","userRole":"n/a","activeYN":"y"},
{"userID":2,"userTypeName":"Manager","userEmail":"sandyjones@gmail.com","userFirstName":"Sandy","userLastName":"Jones","userRole":"n/a","activeYN":"y"},
{"userID":3,"userTypeName":"Manager","userEmail":"jasonsmith@gmail.com","userFirstName":"Jason","userLastName":"Smith","userRole":"n/a","activeYN":"y"},
{"userID":4,"userTypeName":"Manager","userEmail":"neoanderson@gmail.com","userFirstName":"Neo","userLastName":"Anderson","userRole":"n/a","activeYN":"y"}]

问题是我非常注重整洁,所以这个 return 服务需要空格!据我所知,我的 java 方法只能控制信息,不能控制呈现。这个小调整可行吗?

编辑

尝试 return使用 JSONArray;同样的结果。

JSONArray indentedReturn = new JSONArray();
indentedReturn.addAll (userList);
return indentedReturn;

如果您真的需要缩进,您应该在显示 JSON 之前在客户端上完成,而不是通过网络发送空格和换行符。如果出于某种原因这不是一个选项,您可以将对象格式化为 lambda 函数内的 JSON 字符串和 return 字符串而不是列表。