Newtonsoft.Json - 解析值时出现意外的字符

时间:2017-08-16 15:31:10

标签: c# .net json json.net dialogflow

我从API.AI中提取意图并使用Newtonsoft.Json以下列方式将这些意图解析为C#对象: -

intentListModel = JsonConvert.DeserializeObject<List<IntentListModel>>(intentList);

intentList是来自webrequest的JSON字符串。但是在第1行,第161位,它失败了。有关JSON的一点是: -

"contextIn": [
    "Employed"
],
"events": [{
    "name": "Occupation_DOB"
}],

注意:这只是JSON的一部分,JSON以[]打开和关闭,因为它是JSON项目列表。

特别是{上的events开头。我很难过,我通过验证器运行它,我看到了有效的JSON。

有人可以建议我可以尝试一下,或者某个地方有这样的设置?或者是实际查看JSON字符串的另一个区域的错误消息?

提前致谢!

更新 发布了整个JSON示例

[
   {
      "id":"18b025c5-3567-49c1-a9e9-25583f9156ca",
      "name":"IncomeProtection -  Employed? - Occupation/DOB/Email",
      "state":"LOADED",
      "contextIn":[
         "Employed"
      ],
      "events":[
         {
            "name":"Occupation_DOB"
         }
      ],
      "parentId":"ad5f0007-c084-4615-93dd-6c82ca5e7602",
      "parameters":[
         {
            "required":true,
            "dataType":"@Occupation",
            "name":"Occupation",
            "value":"$Occupation",
            "prompts":[
               "Whatu0027s your Occupation?"
            ],
            "isList":false
         },
         {
            "required":true,
            "dataType":"@sys.date",
            "name":"date",
            "value":"$date",
            "prompts":[
               "Whatu0027s your date of birth?"
            ],
            "isList":false
         }
      ],
      "contextOut":[
         {
            "name":"OccupationDOB",
            "parameters":{

            },
            "lifespan":1
         }
      ],
      "actions":[
         "IncomeProtection:Occupation/DOB"
      ],
      "priority":500000,
      "fallbackIntent":false
   }
]

1 个答案:

答案 0 :(得分:1)

此问题归结为列表中返回的API中的一个项目,但在我查看的特定示例中,API返回了1个项目的列表。我误读了括号并创建了类型string而不是List<string>的类属性,因此代码失败。

希望这有助于将来的人们。