var test = new
{
TestStr = "test",
TestNumber = 123,
TestDate = new DateTime(1986, 1, 13, 17, 50, 31),
TestBool = true
};
var xml = JsonConvert.DeserializeXNode(JsonConvert.SerializeObject(test), "test");
字符串
这段代码返回了一个漂亮的xml元素:
<test>
<TestDate>1986-01-13T14:50:31Z</TestDate>
<TestBool>true</TestBool>
<TestNumber>123</TestNumber>
<TestStr>test</TestStr>
</test>
型
当我尝试将此xml转换回JSON时:
var json = JsonConvert.SerializeXNode(xml, Formatting.None, true);
型
我只使用String
属性获取JSON。
我应该怎么做才能让json有正确的类型?
1条答案
按热度按时间myss37ts1#
JSON和XML是不同的序列化格式,并且具有不同的功能。JSON可以区分
string
,number
和boolean
,而XML将所有内容都视为字符串。因此,当您从JSON转换为XML时,类型信息会丢失。处理此问题的一种方法是在来回转换时使用强类型中间模型。换句话说,与其直接从XML转换为JSON,不如将XML转换为模型,然后将模型序列化为JSON。模型将强制数据为正确的类型。下面是一个示例:
字符串
输出量:
型