使用DeSerializeFn在服务堆栈中进行自定义序列化

时间:2016-12-02 16:00:50

标签: json servicestack

在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}
}

我在这里做错了吗?我不确定我是否正在尝试使服务堆栈做一些不打算做的事情,或者我是否遗漏了一些会使这项工作成功的事情。

任何帮助将不胜感激: - )

0 个答案:

没有答案