我试图在不改变数据类型的情况下将XML转换为JSON,但它总是返回字符串值。我尝试了不同的方法来转换适当的数据类型。下面是我的源XML和预期的JSON
<Employee >
<Name>John</Name>
<Age>18</Age>
<IsContractor>true</IsContractor>
<Salary>5555.66</Salary>
</Employee>
预期效果:
"Employee": {
"Name": "John",
"Age": 18,
"IsContractor": true,
"Salary": 5555.66
}
我试过不同的方法,但没有运气
string xml = @"<Employee>
<Name>John</Name>
<Age json:Type='Integer'>18</Age>
<IsContractor json:Type='Boolean'>true</IsContractor>
<Salary json:Type='Decimal'>5555.66</Salary>
</Employee>";
var doc = new XmlDocument();
doc.LoadXml(xml);
var result = JsonConvert.SerializeXmlNode(doc);
另外,我尝试添加一个这样的数据类型
var xml = @"<Employee xmlns:m=""urn:informatica:ae:xquery:json2xml:meta-data"">
<Name>John</Name>
<Age m:type=""xs:double"">18</Age>
<IsContractor m:type=""xs:boolean"">true</IsContractor>
</Employee>";
var doc = new XmlDocument();
doc.LoadXml(xml);
var result1 = JsonConvert.SerializeXmlNode(doc);
但这两种方法都将所有值转换为字符串。
2条答案
按热度按时间mklgxw1f1#
这个代码为我工作。例如,如果你有嵌套的对象,你只需要改变一个迭代算法
输出
llmtgqce2#
您可以使用一种变通方法,即利用Newtonsoft.JSON将XML转换为JSON,然后再次解析JSON以将字符串值转换为相应的数据类型。