问题:输出看起来像这样 [{\"FirstName\":\"William Smith\"}]"
问题:如何从用 C# 编写的 AWS Lambda 函数返回格式良好的 JSON 字符串?
细节:
这是 C# Lambda 函数被编码返回的内容:
string TestJsonEvent = "[{\"FirstName\":\"William Smith\"}]"; 返回 TestJsonEvent;
Lambda 函数执行时;它返回:"[{\"FirstName\":\"William Smith\"}]"
即使这种变化也会返回相同的结果:
string TestJsonEvent = @"[{""FirstName"":""William Smith""}]"; 返回 TestJsonEvent;
Amazon 在他们的 C# 支持声明和Lambda 函数处理程序文档中提供了示例。
相关位:
处理标准数据类型
下面列出的所有其他类型都要求您指定序列化程序。
- 原始 .NET 类型(例如 string 或 int)。
- 集合和映射 - IList、IEnumerable、IList、Array、IDictionary、IDictionary
- POCO 类型(普通的旧 CLR 对象)
- 预定义的 AWS 事件类型
- 对于异步调用,Lambda 将忽略返回类型。在这种情况下,返回类型可以设置为 void。
- 如果您使用 .NET 异步编程,则返回类型可以是 Task 和 Task 类型并使用 async 和 await 关键字。有关更多信息,请参阅在 C# 函数中使用 Async 和 AWS Lambda。
除非您的函数输入和输出参数是 类型
System.IO.Stream,否则您将需要序列化它们。AWS Lambda 提供了一个默认的序列化程序,可以在您的应用程序的程序集或方法级别应用,您也可以通过实现库ILambdaSerializer提供的接口来定义自己的序列化程序Amazon.Lambda.Core。要将默认序列化程序属性添加到方法,首先添加对
Amazon.Lambda.Serialization.Json[...]
安装Amazon.Lambda.Serialization.Json [1] NuGet 包并导入Amazon.Lambda.Serialization.Json命名空间的引用。
public class Sample
{
[LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))]
public object Test()
{
return new { FirstName = "William Smith" };
}
}
Run Code Online (Sandbox Code Playgroud)
[1]:Github链接
| 归档时间: |
|
| 查看次数: |
7245 次 |
| 最近记录: |