глобально, у меня есть следующий объект:
public class Geraet
{
public long Geraetenr { get; set; }
public int Typ { get; set; }
public string Platz { get; set; }
public string Bezeichnung { get; set; }
public int Tr { get; set; }
public string Ip { get; set; }
public string Bespielt { get; set; }
}
Я заполняю список этих объектов, сериализую их и отправляю их через веб-сервис:
[HttpGet]
public IHttpActionResult Get_Feedback()
{
List<Geraet> geraeteliste = null;
try
{
geraeteliste = GetSpielgeraeteFromDatabase();
}
catch (Exception e)
{
Debug.WriteLine(e.Message);
}
if (geraeteliste == null)
{
return Ok("No record found!");
}
else
{
var json = Newtonsoft.Json.JsonConvert.SerializeObject(geraeteliste);
return Json(json);
}
}
Данные, полученные веб-сервисомвыглядит следующим образом:
"[{\" Geraetenr \ ": 123456789, \" Typ \ ": 61, \" Platz \ ": \" 1-01 \ ", \" Bezeichnung "\ ": \" CSII ADM430 \ ", \" Tr \ ": 3, \" Ip \ ": \" 123.123.123.123 \ ", \" Bespielt \ ": \" 0 \ "}, {\" Geraetenr \": 987654321, \" Typ \ ": 61, \" Platz \ ": \" 2-12 \ ", \" Bezeichnung \ ": \" M-BOX PUR + GOLD \ ", \" Tr \ ": 3,\ "Ip \": \ "124.124.124.124 \", \ "Bespielt \": \ "0 \"}] "
В моем приложении Xamarin у меня есть тот же объект, который указан выше, ипытаясь десериализовать его:
private List<Geraet> GetSpielgeraeteFromWebservice()
{
List<Geraet> geraeteliste;
var request = HttpWebRequest.Create(Constants.GeraetelistServicePath);
request.ContentType = "application/json";
request.Method = "GET";
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
var json = reader.ReadToEnd();
geraeteliste = JsonConvert.DeserializeObject<List<Geraet>>(json);
}
}
return geraeteliste;
}
К сожалению, я получаю ошибку времени выполнения в строке geraeteliste = JsonConvert.DeserializeObject<List<Geraet>>(json);
, говорящую:
Исключение необработанного: Newtonsoft.Json.JsonSerializationException: Ошибка преобразования значения"[{" Geraetenr ": 123456789," Typ ": 61," Platz ":" 1-01 "," Bezeichnung ":" CSII ADM430 "," Tr ": 3," Ip ":" 123.123.123.123 ","Bespielt": "0"}, { "Geraetenr": 987654321, "Тип": 61, "Платц": "2-12","Bezeichnung": "M-BOX PUR + GOLD", "Tr": 3, "Ip": "124.124.124.124", "Bespielt": "0"}] "для ввода 'System.Collections.Generic.List`1[GroceryList.Classes.Geraet].Путь '', строка 1, позиция 3421.
Отправка / получение информации работает, в противном случае сообщение об ошибке будет в строке var json = reader.ReadToEnd();
, иначе я не получу правильные значения всообщение об ошибке.Так что-то с десериализацией не работает.Может кто-нибудь может помочь и сказать мне, в чем проблема?Почему он не может обратить?Это правильный порядок и правильные значения?
С уважением