3

JsonConvert.SerializeXNode または JsonConvert.SerializeXmlNode を使用して XML を解析すると、次のコード

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

string json = JsonConvert.SerializeXNode(person);

このjson結果を教えてください:

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

ここで member は文字列として入力されていますが、これを bool として入力したいと思います。XML に型ヒント ( など<member type="xsd:boolean">true</member>) を追加して、パーサーにこれを認識させることはできますか?

代わりにこの結果を取得したいと思います:

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

1 に答える 1

0

多分このように:

[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);
            }
        }
    }
}
于 2012-10-21T18:05:08.410 に答える