问题:输出看起来像这样[{\“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;
答案 0 :(得分:4)
亚马逊在其announcement for C# support和Lambda Function Handler文档中提供了示例。
相关位:
处理标准数据类型
下面列出的所有其他类型都要求您指定序列化程序。
- 原始.NET类型(例如string或int)。
- 收藏品和地图 - IList,IEnumerable,IList,Array,IDictionary,IDictionary
- POCO类型(普通旧CLR对象)
- 预定义的AWS事件类型
- 对于异步调用,将忽略return-type LAMBDA。在这种情况下,返回类型可以设置为void。
- 如果你是 使用.NET异步编程,返回类型可以是Task和 任务类型并使用async和await关键字。欲获得更多信息, 见Using Async in C# Functions with 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" };
}
}
[1]:Github link