我可以在C#中反序列化包含0.0的JSON字符串吗?

时间:2017-02-16 16:36:36

标签: c# json serialization

我从Web服务返回的JSON有一个错误表示为0.0的整数。我的反序列化代码如下所示:

var serializer = new JsonSerializer();
var ret = serializer.Deserialize<T>(jsonTextReader);

我收到这样的错误:

  

输入字符串'0.0'不是有效整数。

我的问题是,有没有办法指定一个不太严格的反序列化方法,以便我可以解析这个字符串?

编辑:Web服务没有返回架构,所以我不知道为什么反序列化器试图将它转换为int而不是float或double。

1 个答案:

答案 0 :(得分:1)

我会说你应该继续在Json -> C#

上创建你的课程
var o = (JObject)serializer.Deserialize(myjsondata);

您可以使用C#动态类型来简化操作。这种技术也使得重新分解更简单,因为它不依赖于魔术字符串。使用JsonConvert.DeserializeObject<dynamic>()将此字符串反序列化为动态类型,然后在C#中以通常的方式访问其属性。

我不确定你为什么要

  

输入字符串'0.0'不是有效整数。

因为如果你没有任何Json数据,它应该只保留为null并且你不应该有这个问题