API.AI .NET C#SDK - 参数显示为{object}

时间:2017-07-18 07:55:26

标签: c# .net asp.net-mvc webhooks dialogflow

我正在使用API​​.AI并通过.NET SDK for API.AI在Nuget中找到并使用webhook MVC控制器来捕获POST。为了传递stringint,数据收到很好并且保存得很好,但是如果我在@ sys.age的API.AI中发送了一个实体类型,那么收到Webook的参数就像我期望的那样存在但是值的类型为{object}。我已尝试以下方法从{object}获取数据值: -

  • (dynamic)item.Value
  • item.Value.ToString()
  • (dynamic)item.Value.ToString()

其中item.Value在观察窗口中显示{object}。

有人可以建议如何从中获取价值吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

@ sys.age参数的Json是:

"result": {        
        "parameters": {
            "age": {
                "amount": 10,
                "unit": "year"
            }
        },

然后你可以使用类来捕获C#中的值,如:

    public class Age
    {
        public int amount { get; set; }
        public string unit { get; set; }
    }
    public class RequestParameter
    {
        public Age age { get; set; }
    }
    public class RequestBody
    {            
        public RequestParameter parameters { get; set; }
    }
    [HttpPost]
    public ActionResult GetValue(RequestBody result)
    {
        var age = result.parameters.age.amount;
        ...

您可以在以下位置查看系统实体:https://api.ai/docs/reference/system-entities