隐藏

反序列化时,如果第三方返回来的JSON有时有,有时为空的解决方法

发布:2018/3/22 12:46:46作者:管理员 来源:本站 浏览次数:1570

1.最开始做的时候,是用古老的办法,代码如下:(做接口的时候,第三方返回来的值有点奇葩,一会儿有一会儿没有的。用这种方式反序列化会报错。也许有解决办法,但是本人新手,不会。。。好尴尬。。。于是换另一种方式)


[csharp] view plain copy
  1. private static JavaScriptSerializer serializer = new JavaScriptSerializer();  
  2. public static T Deserialize<T>(string json)  
  3. {  
  4.     return serializer.Deserialize<T>(json);  
  5. }  

2.  用Json.Net序列化和反序列化设置

[csharp] view plain copy
  1. public static T Deserialize<T>(string json)  
  2. {  
  3.     var jSetting = new JsonSerializerSettings();  
  4.     jSetting.NullValueHandling = NullValueHandling.Ignore;  
  5.     T dt1 = JsonConvert.DeserializeObject<T>(json,jSetting);  
  6.     return dt1;  
  7. }  

jSetting.NullValueHandling = NullValueHandling.Ignore; //这个设置,反序列化的时候,不处理为空的值。。

方法:
(1)在Visual Studio中,工具菜单->管理NuGet包管理器解决方案。如下图: