【问题标题】:How to convert Prediction.Entities returned from LUISRuntimeClient in a strongly typed class如何在强类型类中转换从 LUISRuntimeClient 返回的 Prediction.Entities
【发布时间】:2020-07-21 14:50:27
【问题描述】:

我正在 VS2019 中使用 Microsoft.Azure.CognitiveServices.Language.LUIS.Runtime 包测试 Luis 应用。 我从预测中得到了一个实体列表,但它是一个具有许多属性的 json。我想以优雅的方式对其进行编码,而无需处理 json。有没有我可以将实体转换成它并使用的类?

【问题讨论】:

    标签: c# .net .net-core microsoft-cognitive azure-language-understanding


    【解决方案1】:

    不,没有类让我们将json实体转换成它,我们需要自己解析json。我们可以创建一个属性与实体json属性匹配的类,然后将json转换为类对象。

    将json解析为class并不难,下面是一个示例供您参考:

    public class User
    {
        public User(string json)
        {
            JObject jObject = JObject.Parse(json);
            JToken jUser = jObject["user"];
            name = (string) jUser["name"];
            teamname = (string) jUser["teamname"];
            email = (string) jUser["email"];
            players = jUser["players"].ToArray();
        }
    
        public string name { get; set; }
        public string teamname { get; set; }
        public string email { get; set; }
        public Array players { get; set; }
    }
    
    // Use
    private void Run()
    {
        string json = @"{""user"":{""name"":""asdf"",""teamname"":""b"",""email"":""c"",""players"":[""1"",""2""]}}";
        User user = new User(json);
    
        Console.WriteLine("Name : " + user.name);
        Console.WriteLine("Teamname : " + user.teamname);
        Console.WriteLine("Email : " + user.email);
        Console.WriteLine("Players:");
    
        foreach (var player in user.players)
            Console.WriteLine(player);
     }
    

    还有很多其他solutions/samples可以转换json。

    【讨论】:

      【解决方案2】:

      是否有一些类我可以将实体转换为它并工作 和?

      Andrew,我已成功将来自 Microsoft.Bot.Builder v3 包的 LUIS v2 REST 端点 JSON 响应反序列化为 Microsoft.Bot.Builder.Luis.Models.LuisResult(注意在最新的 v4 包中找不到兼容的类型),这比使用原始 JSON。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-30
        • 2018-04-24
        • 1970-01-01
        • 1970-01-01
        • 2017-07-24
        • 2018-11-23
        • 2016-02-16
        • 1970-01-01
        相关资源
        最近更新 更多