我有一个带有特定字段的JSON对象,其值始终为XML,如下所示:
{
...
"XmlValue": "<tag1><etc></etc></tag1>"
...
}
我使用JSON.Net作为解串器。我想将这个反序列化为这样的类:
public class ObjectContainingXml
{
...
public XElement XmlValue { get;set; }
...
}
当我尝试使用JsonConvert.DeserializeObject<ObjectContainingXml>(input)
时,我会收到此异常:XmlNodeConverter can only convert JSON that begins with an object.
有没有办法让这个本机在JSON.Net中工作而不将该字段作为字符串处理,然后手动将字段解析为XML?
答案 0 :(得分:1)
目前没有内置方法可以使用JSON.Net执行这种反序列化。
背景:
XmlNodeConverter
用于将XML序列化为JSON。例如,像
<root><p>Text1<span>Span1</span> <span>Span2</span> Text2</p></root>
将被序列化为
{"root":{"p":{"#text":["Text1"," Text2"],"span":["Span1","Span2"]}}}
如果您需要将XML序列化为字符串并返回,则需要实现自定义JsonConverter
。