JSON.NET - Can I name types in XML for analysis?

When I parse XML using JsonConvert.SerializeXNode or JsonConvert.SerializeXmlNode, the following code

XElement person = XElement.Parse(@"
  <person>
    <name>Palle</name>
    <member>true</member>
  </person>");

string json = JsonConvert.SerializeXNode(person);

give me this json result:

{"person":{"name":"Palle","member":"true"}}

Here the member is entered as a string, I would like it to be printed as bool. Can I add type hints to XML (for example <member type="xsd:boolean">true</member>) and make the parser perceive this?

I would like to get this result instead:

{"person":{"name":"Palle","member":true}}
+3
source share
1 answer

Maybe so:

[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);
            }
        }
    }
}
0
source

All Articles