В настоящее время я занимаюсь разработкой приложения .NET Core с версией 2.2. Я получаю XML-ответ от Web API, который я не могу изменить. Я выгляжу так:
<?xml version="1.0" encoding="UTF-8"?><GetInformation>
<d1>PL11VTMICE</d1>
<d2>PL-BL02912</d2>
<d3>BL</d3>
<d4>0</d4>
<d5>MTR</d5>
<d6>405</d6>
<d7/>
<d8/>
<d9/>
<d10>2019-10-15 13:29:07.000</d10>
У меня есть класс модели, который выглядит так:
public class Data
{
[Required]
public string d1 { get; set; }
public string d2 { get; set; }
public string d3 { get; set; }
public string d4 { get; set; }
public string d5 { get; set; }
public string d6 { get; set; }
public string d7 { get; set; }
public string d8 { get; set; }
public string d9 { get; set; }
public string d10 { get; set; }
}
public class Informations
{
public List<Data> GetInformation { get; set; }
}
Преобразование из XML в JSON прекрасно работает с этим:
XmlDocument doc = new XmlDocument();
var res = await client.GetAsync("some_address");
if (res.IsSuccessStatusCode)
{
var result = res.Content.ReadAsStringAsync().Result;
doc.LoadXml(result);
string jsontest = JsonConvert.SerializeXmlNode(doc);
}
Когда я смотрю на мою переменную "jsontest" во время выполнения, она выглядит так:
И когда я пытаюсь десериализовать его в объект:
Informations bob = JsonConvert.DeserializeObject<Informations>(jsontest);
я получаю следующую ошибку:
- ex {Newtonsoft.Json.JsonSerializationException: Невозможно десериализоватьтекущий объект JSON (например, {"name": "value"}) в тип 'System.Collections.Generic.List`1 [xxx.xxx.Data]', поскольку для типа требуется массив JSON (например, [1,2,3]) правильно десериализовать. Чтобы исправить эту ошибку, либо измените JSON на массив JSON (например, [1,2,3]), либо измените десериализованный тип так, чтобы это был нормальный тип .NET (например, не примитивный тип, например, целое число, а не тип коллекции, например,массив или список), которые можно десериализовать из объекта JSON. JsonObjectAttribute также можно добавить к типу, чтобы принудительно десериализовать его из объекта JSON.
Я уже пробовал многие решения в Интернете, например, с помощью тега JsonProperty: JSONНедвижимость но, к сожалению, без разницы. Надеюсь, вы можете мне помочь.
Заранее спасибо.