当属性存在时,JSON.net 找不到属性值
本文关键字:属性 net 找不到 JSON 存在 | 更新日期: 2023-09-27 18:17:38
我正在使用 Json.net,我从网页中检索了以下JSON:
"{'"Response'":
[{
'"iconPath'":'"",
'"membershipType'":1,
'"membershipId'":'"124877458474'",
'"displayName'":'"DarylJG'"
}],
'"ErrorCode'":1,
'"ThrottleSeconds'":0,
'"ErrorStatus'":'"Success'",
'"Message'":'"Ok'",
'"MessageData'":{ }}"
现在,尝试从此属性返回字符串时出现以下错误:
类型的未处理异常 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' 发生在 系统核心.dll
附加信息:"Newtonsoft.Json.Linq.JArray"不包含 "图标路径"的定义
图标路径确实存在于此 JSON 文件中。我正在使用的代码:
var response = client.GetAsync("CorrectServerPath & Auth").Result;
var content = response.Content.ReadAsStringAsync().Result;
dynamic item = Newtonsoft.Json.JsonConvert.DeserializeObject(content);
return item.Response.iconPath;
这是引发此错误的代码行,但以下代码:
return item.Message;
将返回确定
所以我的总体问题是,如何使用 JSON.net 在提供的 json 文件中访问 iconPath?因为,我不知所措。研究材料一无所获,可能使用了不正确的搜索词
您的Response
成员是一个数组,而不是一个对象。请改用item.Response[0].iconPath
。