我正在使用Json.net,我从网页中检索了以下JSON:
"{\"Response\":
[{
\"iconPath\":\"",
\"membershipType\":1,
\"membershipId\":\"124877458474\",
\"displayName\":\"DarylJG\"
}],
\"ErrorCode\":1,
\"ThrottleSeconds\":0,
\"ErrorStatus\":\"Success\",
\"Message\":\"Ok\",
\"MessageData\":{ }}"
现在,我在尝试从此属性返回一个字符串时收到以下错误:
未处理的类型异常 发生了'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' System.Core.dll
其他信息:'Newtonsoft.Json.Linq.JArray'不包含 'iconPath'的定义
此JSON文件中存在iconPath。我正在使用的代码:
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 ?因为,我不知所措。研究材料没有提出任何问题。可能使用不正确的搜索字词
答案 0 :(得分:2)
您的Response
成员是一个数组,而不是一个对象。请改用item.Response[0].iconPath
。