json.net处理不存在的令牌

时间:2010-11-23 14:04:06

标签: c# json.net

检测令牌是否存在的最佳方法是什么?我正在使用简单的方法来捕获错误,如果它发生但是必须有一种方法来检测它是否存在:

try { Response.Write(token["key"]); }
catch { }

我尝试过这样的事情:

if (token["disambiguated"].FirstOrDefault().HasValues)

但这似乎不起作用。

谢谢, 史蒂夫。

3 个答案:

答案 0 :(得分:7)

token["disambiguated"] == null

检查该令牌是否存在

token["disambiguated"].HasValues

检查该令牌是否具有值

答案 1 :(得分:0)

你如何填充令牌?如果token是实例化(非空)值,则token["key"]应该只返回null,而不是抛出异常。如果token为null,显然会抛出一个null异常,所以你需要做的就是确保token不为null。我刚刚在最新版本的json.net上测试了这个。

答案 2 :(得分:-1)

我不喜欢使用JSON.NET来反序列化JSON,但是如果你使用的是C#4,那么你可以通过动态代码获得一个非常简单的解决方案。

我发布了some code here,允许您像上面这样编写上面的代码:

if (token.key!=null)
    Response.Write(token.key);

如果您只使用JSON.NET反序列化JSON,那么这对您来说可能是一个更简单的解决方案。