Я хотел бы десериализовать строку JSON, которую я получаю из webservice. Моя проблема заключается в том, что массив десериализованного класса объектов (типа Result) всегда содержит 0 элементов.Metro App - deserialize JSON String
Но webservice возвращает правильную строку. Итак, я думаю, что сбой происходит в том, как я десериализую строку/поток.
Какие-либо идеи в чем моя вина?
//JSON result string:
{"Results":
[{"Result":{
"Name":"Rechnung2",
"Date1":"2012-10-05",
"Item1":"50",
"Item2":"10",
"CompanyName":"Contoso",
"Description":"My description"}}]
}
[DataContract]
public class Result
{
[DataMember]
public string Name { get; set; }
[DataMember]
public string Date1 { get; set; }
[DataMember]
public string Item1 { get; set; }
[DataMember]
public string Item2 { get; set; }
[DataMember]
public string CompanyName { get; set; }
[DataMember]
public string Description { get; set; }
}
public async void GetjsonStream()
{
HttpClient client = new HttpClient();
string url = "http://localhost/test/api.php?format=json&key=12345";
HttpResponseMessage response = await client.GetAsync(url);
//ReadAsStringAsync() works fine, so I think ReadAsStreamAsync() works also fine
var str = await response.Content.ReadAsStreamAsync();
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Result[]));
//Result has always 0 items
Result[] res = (Result[])ser.ReadObject(str);
}
Спасибо Джон. С небольшим изменением кода он работает хорошо. Большое спасибо :-). Кстати: я читал твою книгу, хорошие объяснения и статьи;) – user1011394