我从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
}
]
答案 0 :(得分:1)
此问题归结为列表中返回的API中的一个项目,但在我查看的特定示例中,API返回了1个项目的列表。我误读了括号并创建了类型string
而不是List<string>
的类属性,因此代码失败。
希望这有助于将来的人们。