Сначала я конвертирую Объект в json, а затем преобразую json в xml. Мне нужно сделать это, чтобы сгенерировать некоторые свойства как атрибут xml вместо элементов. Все работает, как и ожидалось, за исключением того, что я не смог создать отдельный элемент xml для каждого элемента.
C# код:
string json = JsonConvert.SerializeObject(myObj);
XmlDocument xdoc = JsonConvert.DeserializeXmlNode(json, "root");
Сгенерировано json:
{
"header": "myheader",
"transaction": {
"date": "2019-09-24",
"items": [
{
"number": "123",
"unit": "EA",
"qty": 6
},
{
"number": "456",
"unit": "CS",
"qty": 4
}
]
}
}
C# классы:
public class Item
{
[JsonProperty("@number")]
public string number { get; set; }
[JsonProperty("@unit")]
public string unit { get; set; }
[JsonProperty("@qty")]
public int qty { get; set; }
}
public class Transaction
{
[JsonProperty("@date")]
public string date { get; set; }
public List<Item> items { get; set; }
}
public class Root
{
public string header { get; set; }
public Transaction transaction { get; set; }
}
Генерируемый (не желательный) вывод:
<root>
<header>string</header>
<transaction date="string">
<items number="string" unit="string" qty="0"/>
<items number="string" unit="string" qty="0"/>
</transaction>
</root>
Ожидаемый вывод:
<root>
<header>string</header>
<transaction date="string">
<items>
<item number="string" unit="string" qty="0"/>
<item number="string" unit="string" qty="0"/>
</items>
</transaction>
</root>