Rumah >pangkalan data >tutorial mysql >Bagaimana Mengendalikan JToken Kosong atau Null Apabila Memetakan JSON ke Parameter SQL dalam C#?

Bagaimana Mengendalikan JToken Kosong atau Null Apabila Memetakan JSON ke Parameter SQL dalam C#?

Susan Sarandon
Susan Sarandonasal
2025-01-05 22:35:43729semak imbas

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

Menyemak JToken Kosong atau Null dalam JObject

Masalah:

Dalam C# aplikasi, kod berikut cuba untuk menggelung melalui JArray JObjects dan memberikan nilai kepada parameter SQL menggunakan kaedah JTokenToSql. Walau bagaimanapun, jika harta dalam JObject kosong atau batal, kaedah JTokenToSql tidak berfungsi seperti yang diharapkan.

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

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

JTokenToSql ditakrifkan sebagai:

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

Penyelesaian:

Untuk menyemak sama ada sifat wujud pada JObject, gunakan kurungan segi empat sama sintaks dan semak sama ada hasilnya adalah batal. Jika harta itu wujud, JToken akan dikembalikan walaupun nilainya batal dalam JSON.

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

Untuk menyemak sama ada JToken tidak kosong, pertimbangkan untuk menggunakan kaedah sambungan seperti berikut:

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

Kaedah ini akan kembali benar jika token adalah batal, kosong atau daripada jenis yang tidak ditentukan.

Atas ialah kandungan terperinci Bagaimana Mengendalikan JToken Kosong atau Null Apabila Memetakan JSON ke Parameter SQL dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn