【发布时间】:2013-08-13 13:52:09
【问题描述】:
我有一个来自互联网的 JSON 文件:
string JSON = reader.ReadToEnd();
完美运行,问题出在这里:
NewsList = JsonConvert.DeserializeObject<News>(JSON) as News;
这在 WP8 项目上完美运行,但 WP7 不知何故失败了。这是我的新闻课:
class News
{
[JsonProperty("jsonrpc")]
public string Jsonrpc { get; set; }
[JsonProperty("id")]
public string Id { get; set; }
[JsonProperty("result")]
public Result Result { get; set; }
}
public class Result
{
private List<Article> articles = new List<Article>();
[JsonProperty("articles")]
public List<Article> Articles { get { return articles; } }
}
public class Article
{
[JsonProperty("text")]
public string Text { get; set; }
[JsonProperty("id")]
public int Id { get; set; }
[JsonProperty("date")]
public long Date { get; set; }
[JsonProperty("title")]
public string Title { get; set; }
[JsonProperty("author")]
public string Author { get; set; }
[JsonProperty("imageURL")]
public string ImageURL { get; set; }
}
这是错误:
尝试访问方法失败:WP7RTURelease2.HomePage+News..ctor()
System.MethodAccessException 未处理 消息=尝试访问该方法失败:WP7RTURelease2.HomePage+News..ctor() 堆栈跟踪: 在 System.Reflection.RuntimeConstructorInfo.InternalInvoke(对象 obj,BindingFlags invokeAttr,Binder binder,Object[] 参数,CultureInfo 文化,StackCrawlMark 和 stackMark) 在 System.Reflection.ConstructorInfo.Invoke(对象 [] 参数) 在 Newtonsoft.Json.Utilities.LateBoundReflectionDelegateFactory.c_DisplayClass6`1.b_5() 在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateNewObject(JsonReader 阅读器,JsonObjectContract objectContract,JsonProperty containerMember,JsonProperty containerProperty,String id,Boolean& createdFromNonDefaultConstructor) 在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader 阅读器,类型 objectType,JsonContract 合同,JsonProperty 成员,JsonContainerContract containerContract,JsonProperty containerMember,对象现有值) 在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader 阅读器,类型 objectType,JsonContract 合同,JsonProperty 成员,JsonContainerContract containerContract,JsonProperty containerMember,对象现有值) 在 Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader 阅读器,类型 objectType,布尔 checkAdditionalContent) 在 Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader 阅读器,类型 objectType) 在 Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader 阅读器,类型 objectType) 在 Newtonsoft.Json.JsonConvert.DeserializeObject(字符串值,类型类型,JsonSerializerSettings 设置) 在 Newtonsoft.Json.JsonConvert.DeserializeObject[T](字符串值,JsonSerializerSettings 设置) 在 Newtonsoft.Json.JsonConvert.DeserializeObject[T](字符串值) 在 WP7RTURelease2.HomePage.HandleResponseNews(IAsyncResult 结果) 在 System.Net.Browser.ClientHttpWebRequest.c_DisplayClassa.b_8(对象状态 2) 在 System.Threading.ThreadPool.WorkItem.WaitCallback_Context(对象状态) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback 回调,对象状态) 在 System.Threading.ThreadPool.WorkItem.doWork(对象 o) 在 System.Threading.Timer.ring()
【问题讨论】:
标签: windows-phone-7 windows-phone-8 windows-phone json.net