2010-11-23 4 views
4

Quelle est la meilleure façon de détecter si un jeton existe? J'utilise la façon grossière de simplement attraper l'erreur si cela se produit, mais il doit y avoir un moyen de détecter si elle existe:json.net gérer des jetons qui n'existent pas

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

J'ai essayé quelque chose comme ceci:

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

mais qui ne ne semble pas fonctionner.

Merci, Steve.

Répondre

7
token["disambiguated"] == null 

pour vérifier ce jeton existe

token["disambiguated"].HasValues 

pour vérifier ce jeton a des valeurs

0

Comment allez-vous peuplez le jeton? Si token est une valeur instanciée (non nulle), alors token["key"] devrait simplement renvoyer une valeur nulle, sans lancer une exception. Il serait évidemment une exception nulle si token est nulle, tout ce que vous devez faire est de vous assurer que token n'est pas null. Je viens de tester cela sur la dernière version de json.net.

-1

Je ne suis pas intime avec JSON.NET pour désérialiser JSON, mais si vous utilisez C# 4, vous pouvez obtenir une solution assez simple via le code dynamique.

J'ai posté some code here qui vous permettra d'écrire le code ci-dessus comme ceci:

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

Si vous n'utilisez JSON.NET pour deserialising JSON cela peut être une solution plus simple pour vous.