Maison > base de données > tutoriel mysql > Comment gérer les JTokens vides ou nuls lors du mappage de JSON aux paramètres SQL en C# ?

Comment gérer les JTokens vides ou nuls lors du mappage de JSON aux paramètres SQL en C# ?

Susan Sarandon
Libérer: 2025-01-05 22:35:43
original
740 Les gens l'ont consulté

How to Handle Empty or Null JTokens When Mapping JSON to SQL Parameters in C#?

Vérification d'un JToken vide ou nul dans un JObject

Problème :

Dans un C# application, le code suivant tente de parcourir un JArray de JObjects et d'attribuer des valeurs aux paramètres SQL à l'aide de JTokenToSql méthode. Cependant, si une propriété du JObject est vide ou nulle, la méthode JTokenToSql ne fonctionne pas comme prévu.

JArray clients = (JArray)clientsParsed["objects"];

foreach (JObject item in clients.Children())
{
    command.Parameters["@MyParameter"].Value = JTokenToSql(item["thisParameter"]);
}
Copier après la connexion

JTokenToSql est défini comme :

public static object JTokenToSql(JToken obj)
{
    if (obj.Any())
        return (object)obj;
    else
        return (object)DBNull.Value;
}
Copier après la connexion

Solution :

Pour vérifier si une propriété existe sur un JObject, utilisez la syntaxe entre crochets et vérifiez si le résultat est nul. Si la propriété existe, un JToken sera renvoyé même si sa valeur est nulle dans le JSON.

JToken token = jObject["param"];
if (token != null)
{
    // the "param" property exists
}
Copier après la connexion

Pour vérifier si un JToken n'est pas vide, pensez à utiliser une méthode d'extension comme la suivante :

public static class JsonExtensions
{
    public static bool IsNullOrEmpty(this JToken token)
    {
        return (token == null) ||
               (token.Type == JTokenType.Array && !token.HasValues) ||
               (token.Type == JTokenType.Object && !token.HasValues) ||
               (token.Type == JTokenType.String && token.ToString() == String.Empty) ||
               (token.Type == JTokenType.Null) ||
               (token.Type == JTokenType.Undefined)
    }
}
Copier après la connexion

Cette méthode retournera vrai si le jeton est nul, vide ou de type indéfini.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal