Я анализирую строку JSON на соответствующий объект .NET с помощью библиотеки Newtonsoft. У меня проблема с анализом свойств JSON, которые являются массивами. Иногда свойство JSON представляет собой массив, а иногда - отдельный элемент.
Пример:
Это объект .NET:
public class xx
{
public string yy { get; set; }
public List<string> mm{ get; set; }
}
Когда я получаю этот JSON:
{ "xx": {"yy":"nn", "mm": [ "zzz", "aaa" ] } }
Я отлично справляюсь:
JsonConvert.DeserializeObject<xx>(json);
Но иногда я получаю этот JSON:
{ "xx": {"yy":"nn", "mm":"zzz"} }
И десериализация не выполняется, потому что свойства списка объекта C #.
Как я могу определить объект для десериализации двух строк JSON в одном объекте (с List
).
-------- ОБНОВЛЕНИЕ -----
Прежде всего, WS генерирует XML, выполняя некоторую операцию .. XML похож на
<xx yy='nn'><mm>zzz</mm></xx>
, а если есть больше элементов, это:
<xx yy='nn'><mm>zzz</mm><mm>aaa</mm></xx>
наконец, WS преобразует этот XML, выполняя:
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
var json = JsonConvert.SerializeXmlNode(doc);
и отправляет мне json .. и здесь начинается моя проблема ..