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 字符串而不是列表。
我在 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 字符串而不是列表。