我从Web服务返回的JSON有一个错误表示为0.0的整数。我的反序列化代码如下所示:
var serializer = new JsonSerializer();
var ret = serializer.Deserialize<T>(jsonTextReader);
我收到这样的错误:
输入字符串'0.0'不是有效整数。
我的问题是,有没有办法指定一个不太严格的反序列化方法,以便我可以解析这个字符串?
编辑:Web服务没有返回架构,所以我不知道为什么反序列化器试图将它转换为int而不是float或double。
答案 0 :(得分:1)
我会说你应该继续在Json -> C#
上创建你的课程var o = (JObject)serializer.Deserialize(myjsondata);
您可以使用C#动态类型来简化操作。这种技术也使得重新分解更简单,因为它不依赖于魔术字符串。使用JsonConvert.DeserializeObject<dynamic>()
将此字符串反序列化为动态类型,然后在C#中以通常的方式访问其属性。
我不确定你为什么要
输入字符串'0.0'不是有效整数。
因为如果你没有任何Json数据,它应该只保留为null并且你不应该有这个问题