Heim >Datenbank >MySQL-Tutorial >Wie gehe ich mit leeren oder Null-JTokens um, wenn ich JSON SQL-Parametern in C# zuordne?

Wie gehe ich mit leeren oder Null-JTokens um, wenn ich JSON SQL-Parametern in C# zuordne?

Susan Sarandon
Susan SarandonOriginal
2025-01-05 22:35:43723Durchsuche

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

Prüfung auf leeres oder Null-JToken in einem JObject

Problem:

In einem C# Anwendung versucht der folgende Code, ein JArray von JObjects zu durchlaufen und SQL-Parametern mithilfe der JTokenToSql-Methode Werte zuzuweisen. Wenn jedoch eine Eigenschaft im JObject leer oder null ist, funktioniert die JTokenToSql-Methode nicht wie erwartet.

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

foreach (JObject item in clients.Children())
{
    command.Parameters["@MyParameter"].Value = JTokenToSql(item["thisParameter"]);
}

JTokenToSql ist definiert als:

public static object JTokenToSql(JToken obj)
{
    if (obj.Any())
        return (object)obj;
    else
        return (object)DBNull.Value;
}

Lösung:

Um zu überprüfen, ob eine Eigenschaft auf einem JObject vorhanden ist, verwenden Sie die Syntax in eckigen Klammern und prüfen Sie, ob die Ergebnis ist null. Wenn die Eigenschaft vorhanden ist, wird ein JToken zurückgegeben, auch wenn sein Wert im JSON null ist.

JToken token = jObject["param"];
if (token != null)
{
    // the "param" property exists
}

Um zu überprüfen, ob ein JToken nicht leer ist, sollten Sie eine Erweiterungsmethode wie die folgende in Betracht ziehen:

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)
    }
}

Diese Methode gibt true zurück, wenn das Token null, leer oder vom undefinierten Typ ist.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit leeren oder Null-JTokens um, wenn ich JSON SQL-Parametern in C# zuordne?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn