2012-05-09 39 views
3

當我使用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}} 

回答

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); 
      } 
     } 
    } 
}