当属性存在时,JSON.net 找不到属性值



我正在使用 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

相关内容

  • 没有找到相关文章

最新更新