我的Asp.Net MVC应用程序操作通过序列化几个C#对象中的一个来返回
JSON,具体取决于具体情况(如果发生错误,如果检索到一种类型的数据,则为一种数据类型等).
当我尝试在C#windows服务中使用JSON时,我无法确定要返回的JSON类型.不幸的是,从我所看到的,如果没有JSON匹配,JSON序列化程序(JSON.Net和RestSharp使用的任何东西)都可以创建一个空对象.
我理解为什么会发生这种情况,但我很困惑如何判断从JSON序列化的值是否合法,或者是否没有JSON属性匹配且序列化程序只是创建了一个空对象.
有谁知道我如何确定JSON和我试图反序列化的类型之间是否存在匹配?
解决方法
我建议使用try catch块,如果你的反序列化会抛出无效的参数异常,那么字符串的格式不正确.
如果您使用的是System.Web.Script.Serialization
如果您使用的是System.Web.Script.Serialization
JavaScriptSerializer sel = new JavaScriptSerializer(); try { return sel.Deserialize<List<YourObjectType>>(jSONString); } catch(System.ArgumentException e) { return null; }