ホームページ >データベース >mysql チュートリアル >C# で JSON を SQL パラメーターにマッピングするときに空または Null の JToken を処理する方法は?

C# で JSON を SQL パラメーターにマッピングするときに空または Null の JToken を処理する方法は?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-05 22:35:43729ブラウズ

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

JObject 内の空または Null JToken のチェック

問題:

C# の場合アプリケーションでは、次のコードは JObject の JArray をループし、値を SQL パラメータに割り当てようとします。 JTokenToSql メソッドを使用します。ただし、JObject 内のプロパティが空または null の場合、JTokenToSql メソッドは期待どおりに機能しません。

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

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

JTokenToSql は次のように定義されます。

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

解決策:

JObject にプロパティが存在するかどうかを確認するには、四角形を使用します。括弧構文を使用して、結果が null かどうかを確認します。プロパティが存在する場合、JSON 内の値が null であっても JToken が返されます。

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

JToken が空でないかどうかを確認するには、次のような拡張メソッドの使用を検討してください。

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

トークンが null、空、または未定義のタイプの場合、このメソッドは true を返します。

以上がC# で JSON を SQL パラメーターにマッピングするときに空または Null の JToken を処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。