У меня есть веб-служба PHP
, которая предоставляет объект JSON
. В моем Windows Phone 8 Application, я потребляю службу, выполнив следующие действия:JSON Deserialize in WP8
public void GetSigns()
{
var webClient = new WebClient();
var uri = new Uri("someURL");
webClient.OpenReadCompleted += GetSigns_Completed;
webClient.OpenReadAsync(uri);
}
private void GetSigns_Completed(object sender, OpenReadCompletedEventArgs e)
{
using (var sr = new StreamReader(e.Result))
{
var data = sr.ReadToEnd();
var result = JsonConvert.DeserializeObject<List<GetSignsResponse>>(data);
}
}
data
объект в использовании заявления правильно заполнены строки JSON. Однако объект result генерирует исключение (я удалил try и catch, чтобы сделать код более удобочитаемым).
Это то, что мой GetSignsResponse
объект выглядит следующим образом:
public class GetSignsResponse
{
public int ID { get; set; }
public string Online { get; set; }
public string Location { get; set; }
public DateTime Maxupdated { get; set; }
public string Line1 { get; set; }
public string Line2 { get; set; }
public string Line3 { get; set; }
public string Line4 { get; set; }
}
JSON возвращает следующее:
Веб-служба возвращает коллекцию GetSignsResponse
объекта.
Любая идея, почему объект result
в методе обратного вызова GetSigns_Completed
работает неправильно? У меня отсутствует объект GetSignsResponse
?
Ошибка, который я получаю это, что он не может преобразовать JSON в к List
из GetSignsResponse
.
Update Веб-служба JSON выглядит следующим образом:
{
sign: {
id: "11",
online: "1",
location: "abc",
maxupdated: "2013-11-19 16:59:05",
line1: " abc ",
line2: " abc ",
line3: " abc ",
line4: " "
}
},
{
sign: {
id: "7",
online: "1",
location: "abc",
maxupdated: "2013-11-19 16:58:03",
line1: " abc ",
line2: " abc ",
line3: " abc ",
line4: " "
}
},
data
объект в GetSigns_Completed
выглядит следующим образом:
"\ т {\" знаки \ ": [{ \ "знак \": {\ "идентификатор \": \ "1 \", \ "онлайн \": \ "1 \", \ "место \": \ "аЬс \", \ "maxupdated \": \ "2013-10-05 06:29:02 \", \ "line1 \": \ "\", \ "line2 \": \ "\", \ "line3 \": \ "\", \ "line4 \ ": \" \ "}}, {\" sign \ ": {\" id \ ": \" 2 \ ", \" онлайн \ ": \" 1 \ ", \" location \ ": \" abc \ ", \" maxupdated \ ": \" 2013-10-05 18:21:01 \ ", \" line1 \ ": \" abc \ ", \" line2 \ ": \ "abc \", \ "line3 \": \ "abc \", \ "line4 \": \ "\"}}, {\ "sign \" "}}]}"
А где же json? –
Hi L.B. - Я обновил оригинальный пост. Нижняя часть содержит только два объекта в строке JSON. – Subby
Subby, как вы ожидаете, что мы дадим правильный ответ, не зная * правильный * json (а не как вы опубликовали). –