La vérification de vide/null JToken dans un JObject
J'ai le texte suivant...
JArray clients = (JArray)clientsParsed["objects"];
foreach (JObject item in clients.Children())
{
//etc.. SQL params stuff...
command.Parameters["@MyParameter"].Value = JTokenToSql(item["thisParameter"]);
}
JTokenToSql
ressemble à...
public static object JTokenToSql(JToken obj)
{
if (obj.Any())
return (object)obj;
else
return (object)DBNull.Value;
}
J'ai essayé ((JObject)obj).Count
aussi.. Mais ne semble pas fonctionner.
Vous devez vous connecter pour publier un commentaire.
Pour vérifier si une propriété existe sur un
JObject
, vous pouvez utiliser le crochet de la syntaxe et de voir si le résultat est null ou pas. Si la propriété existe, unJToken
sera toujours renvoyée (même si elle a la valeurnull
dans le JSON).Si vous avez un
JToken
dans la main et vous voulez pour voir si elle est non vide, eh bien, ça dépend sur quel type deJToken
il est et comment vous définissez "vide". J'ai l'habitude d'utiliser une méthode d'extension comme ceci:ToSrting
laJToken
et vérifierIsNullOrWhiteSpace
? (Après vérification de laJToken
n'est pas nulle, bien sûr){}
et[]
respectivement.Vous pouvez procéder comme suit pour vérifier si un JToken Valeur est null
De C# 7 vous pouvez également utiliser ce:
L'Opérateur vérifie le Type et si sa corrige la Valeur est à l'intérieur de la clients de la variable.
Il y a aussi un type JTokenType.Undefined.
Cette case doit être inclus dans @Brian Rogers réponse.