【问题标题】:Handling JSON in windows phone 7在 Windows Phone 7 中处理 JSON
【发布时间】: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


【解决方案1】:

尝试公开您的 News 课程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多