如何使用Json.Net转换为XML时序列化空数组

时间:2014-01-07 16:06:46

标签: c# xml arrays serialization json.net

我需要将一些Json转换为XML但是当我这样做时会删除所有空数组/ list / collections / etc ......

如何让它将数组包含为空项?

示例Json:

{ 
  "EmptyCollection": [], 
  "OtherPorperty\": "TestValue" 
}

C#代码:

var jsonString = "{ \"EmptyCollection\": [], \"OtherPorperty\":\"TestValue\" }";


var xmlDoc = JsonConvert.DeserializeXmlNode(jsonString, "root", true);
Console.WriteLine(xmlDoc.InnerXml);

实际结果是

<root>
  <OtherPorperty>TestValue</OtherPorperty>
</root>

期望的结果是

<root>
  <EmptyCollection></EmptyCollection>
  <OtherPorperty>TestValue</OtherPorperty>
</root> 

or 

<root>
  <EmptyCollection />
  <OtherPorperty>TestValue</OtherPorperty>
</root>

使用writeArrayAtribute似乎不起作用。

1 个答案:

答案 0 :(得分:0)

我认为这个含义存在问题。我个人认为Json库完成的转换很好,你不能得到你提出的两个结果之一。 提出的每个场景中的标签并不意味着(从XML的角度来看)它是一个空数组。但这意味着属性(不是数组)EmptyCollection是空的。你会失去一些东西。

我建议你测试标签的缺失是否为“无信息”a.k.a“数组中没有条目”