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

我可以反序列化C#中包含0.0的JSON字符串吗?,c#,json,serialization,C#,Json,Serialization,我从Web服务返回的JSON中有一个整数被错误地表示为0.0。我的反序列化代码如下所示: var serializer = new JsonSerializer(); var ret = serializer.Deserialize<T>(jsonTextReader); var serializer=newjsonserializer(); var ret=serializer.Deserialize(jsonTextReader); 我得到这样一个错误: var serial

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

var serializer = new JsonSerializer();
var ret = serializer.Deserialize<T>(jsonTextReader);
var serializer=newjsonserializer();
var ret=serializer.Deserialize(jsonTextReader);
我得到这样一个错误:

var serializer = new JsonSerializer();
var ret = serializer.Deserialize<T>(jsonTextReader);
输入字符串“0.0”不是有效的整数

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


编辑:web服务不返回任何模式,因此我不知道为什么反序列化程序尝试将其转换为int而不是float或double。

我认为您应该继续并在上面创建类

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

我不知道你为什么会这样

输入字符串“0.0”不是有效的整数


因为如果没有任何Json数据,就应该将其保留为null,而不应该有这个问题,我建议您继续在上面创建类

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

我不知道你为什么会这样

输入字符串“0.0”不是有效的整数


因为如果您没有任何Json数据,它应该保持为null,您不应该有这个问题

它不是int。必须更改为十进制/双精度吗?或者使用diff-Json反序列化程序,或者编写自定义Int反序列化程序。他们可能会声明它是int(表示在点/逗号之后没有数字),但他们的API将其作为double/float/decimal发送。很好的一点,但是Web服务没有返回任何模式,所以我不知道它为什么需要int。您的t模型/类具有int属性,这里是一个自定义JsonConverter的示例:是的,我自动生成了这些类,并将其设置为int。愚蠢的错误,你能把它作为一个答案吗?它不是int。必须更改为十进制/双精度吗?或者使用diff-Json反序列化程序,或者编写自定义Int反序列化程序。他们可能会声明它是int(表示在点/逗号之后没有数字),但他们的API将其作为double/float/decimal发送。很好的一点,但是Web服务没有返回任何模式,所以我不知道它为什么需要int。您的t模型/类具有int属性,这里有一个自定义JsonConverter的例子:啊,是的,我自动生成了这些类,并将其设置为int。愚蠢的错误,你能把它作为一个答案吗?