【发布时间】:2021-08-10 04:54:43
【问题描述】:
我的 AWS Step Function 将自定义对象从 Lambda 传递到 Lambda。该对象的属性之一是Dictionary<string, object>——但AWS JSON 序列化程序会变成Dictionary<string, JsonElement> 之类的东西。因此,如果我将一个对象传递给它,Newtonsoft 会像这样反序列化:
{ "name": "Tom", "age": 99, "married": true }
...Lambda 作为输入参数接收的内容如下:
{
"name" : { "ValueKind": 3 },
"age" : { "ValueKind": 2 },
"married" : {"ValueKind: 1 }
}
(忽略我的 ValueKind 值,它们并不重要。)
这意味着我的 Lambda 的输入不可用。
我不想为我的 Step Function 中的所有 10 多个 Lambda 编写和维护一堆翻译器代码来勾选字典中的每个条目并重新构建它。 (无论如何,我不确定我是否可以。我认为当它像这样反序列化时,原始值会丢失。)
建议?我可以将 Amazon JSON 序列化程序换成 Newtonsoft 的吗?我可以创建一个对我有帮助的扩展程序吗?
【问题讨论】:
标签: c# aws-lambda system.text.json