JSON.NET - 我可以提示用XML解析类型吗?
问题描述:
当我使用JsonConvert.SerializeXNode或JsonConvert.SerializeXmlNode下面的代码解析XMLJSON.NET - 我可以提示用XML解析类型吗?
XElement person = XElement.Parse(@"
<person>
<name>Palle</name>
<member>true</member>
</person>");
string json = JsonConvert.SerializeXNode(person);
给我这个JSON结果:
{"person":{"name":"Palle","member":"true"}}
这件类型为字符串,我想这被打字为布尔。我可以在XML中添加类型提示(如<member type="xsd:boolean">true</member>
),并让解析器接受这个提示吗?
我希望得到这样的结果,而不是:
{"person":{"name":"Palle","member":true}}
答
也许是这样的:
[TestFixture]
public class Class1
{
[Test]
public void DateTimeTest()
{
string xml = @"<person><name>Palle</name><member>true</member></person>";
person person = xml.Deserialize<person>();
var serializeXNode = JsonConvert.SerializeObject(person);
}
}
public class person
{
public string name { get; set; }
public bool member { get; set; }
}
public static class Extension
{
public static T Deserialize<T>(this string xml)
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
using (var stringReader = new StringReader(xml))
{
using (var xmlReader = XmlReader.Create(stringReader))
{
return (T) xmlSerializer.Deserialize(xmlReader);
}
}
}
}