在servicestack中,我正在尝试处理一个webhook,它将以下JSON主体发送到服务堆栈端点:
{
"action": "actionType1",
"api_version": "1.00",
"data": {
"id": "a8d316b8-10a7-4440-a836-9bd354f656db",
//VARIABLE other properties / structure
}
}
我想要映射到以下请求对象:
[Route("/public/Webhookhandler", HttpVerbs.Post)]
public class MyCustomRequst
{
public string action { get; set; }
public string api_version { get; set; }
public string data { get; set; } //Will be the remaining JSON
}
然而,当服务堆栈框架处理这个 - "数据"是JSON正文的正确部分,但删除了所有引号 - 因此它不再有效。
我试图使用以下内容覆盖整个请求对象的序列化:
JsConfig<MyCustomRequst>.DeSerializeFn = DeserializeMyRequestDto;
public MyCustomRequst DeserializeMyRequestDto(string rawBody)
{
var result = rawBody.FromJson<MyCustomRequst>();
return result
}
但即使在这种情况下,&#34; rawBody&#34;的价值也是如此。变量仍然是正确的JSON数据,但删除了所有引号,例如
{
action:actionType1,
api_version:1.00,
data:{id:a8d316b8-10a7-4440-a836-9bd354f656db}
}
我在这里做错了吗?我不确定我是否正在尝试使服务堆栈做一些不打算做的事情,或者我是否遗漏了一些会使这项工作成功的事情。
任何帮助将不胜感激: - )