2013-08-13 2 views
0

У меня есть JSON-файл приходит из Интернета:Обработка JSON в Windows Phone 7

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() StackTrace: at System.Reflection.RuntimeConstructorInfo.InternalInvoke (Object obj, BindingFlags invokeAttr, Binder binder, Object [] parameters, Cult ureInfo культура, StackCrawlMark & stackMark) at System.Reflection.ConstructorInfo.Invoke (Object [] parameters) at Newtonsoft.Json.Utilities.LateBoundReflectionDelegateFactory. <> c_ DisplayClass6`1.b _5() на Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateNewObject (JsonReader читателя, JsonObjectContract objectContract, JsonProperty containerMember, JsonProperty containerProperty, строковый идентификатор, Boolean & createdFromNonDefaultConstructor) в Newtonsoft.Json. Serialization.JsonSerializerInternalReader.CreateObject (JsonReader читатель, тип ObjectType, JsonContract контракт, член JsonProperty, JsonContainerContract containerContract, JsonProperty containerMember, объект existingValue) на Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal (считыватель JsonReader, Тип ObjectType, JsonContract контракт, член JsonProperty , JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) на 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] (значение String, JsonSerializerSettings настройки) в Newtonsoft.Json.JsonConvert.DeserializeObject [T] (значение строки) в WP7RTURelease2.HomePage.HandleResponseNews (результат IAsyncResult) в System.Net.Browser.ClientHttpWebRequest. <> c_ DisplayClassa.b _8 (State2 объекта) в System.Threading.ThreadPool.WorkItem.WaitCallback_Context (состояние объекта) в System.Threading.ExecutionContext.Run (ExecutionContext ExecutionContext, ContextCallback обратного вызова, объект состояния) в системе .Threading.ThreadPool.WorkItem.doWork (Object o) at System.Threading.Timer.ring()

+0

Возможный двухслойный: http://stackoverflow.com/questions/10783327/attempt-to-access-the-method-failed-system-collections-generic-list1-ctor –

ответ

1

Попробуйте создать класс News.

+0

Интересно, это сработало – Cheese