我对JSON.Net库有疑问。通常我有一个像这样的XML字符串:
<Config>
....
<Name>some name</Name>
....
</Config>
然后我使用JSON.Net库将字符串转换为json字符串,如下所示:
Congif: {
...
Name: "some name",
...
}
最后,我将这个json字符串映射到Config类的实例:
Config instance = JsonConvert.DeserializeObject<Config>(json);
如果name属性是我的Config类中的名称数组:
class Config {
....
public string[] Name { get; set; }
....
}
据我所知,在json字符串中,数组定义如下:
Name: ["some name"],
由于我从XMl字符串转换了json字符串,因此我可能有一个或多个Name节点。当XMl中只定义了一个Name时,这会给您带来麻烦。我会得到异常抱怨它无法将字符串转换为字符串[]。如果在XML文件中定义了多个Name节点,那就没问题了。
当映射看到目标属性时,不确定是否有任何方法或选项让JSON库自动将其转换为字符串数组Name是一个数组类型属性,即使Name只有一个值?
答案 0 :(得分:1)
我可以做的是在XML字符串中添加一个空值节点,使其像XML字符串中只有一个节点一样,或者将空值节点添加到所有现有节点中。
唯一的问题是数组附加了一个空条目。