Maison >développement back-end >C++ >Comment puis-je convertir efficacement un DataTable C# en un format JSON personnalisé ?

Comment puis-je convertir efficacement un DataTable C# en un format JSON personnalisé ?

DDD
DDDoriginal
2025-01-21 16:43:09684parcourir

How Can I Efficiently Convert a C# DataTable to a Custom JSON Format?

Convertir DataTable en JSON en C#

Cet article explique comment convertir des objets DataTable au format C# au format JSON. Le problème commence par la récupération des enregistrements de la base de données dans un DataTable, puis par leur conversion en objet JSON et par leur renvoi vers une fonction JavaScript. Cependant, le format JSON requis est différent de la sortie actuelle. Cet article propose une solution pour obtenir le format JSON souhaité.

Pour résoudre ce problème, vous pouvez utiliser différentes méthodes de sérialisation. Au lieu d'utiliser JsonConvert.SerializeObject, envisagez d'utiliser System.Web.Script.Serialization dans l'espace de noms JavaScriptSerializer. Cette alternative permet un meilleur contrôle sur la structure de sortie JSON.

Voici un exemple de mise en œuvre de cette solution :

<code class="language-csharp">public string ConvertDataTabletoString()
{
    DataTable dt = new DataTable();
    using (SqlConnection con = new SqlConnection("YOUR_CONNECTION_STRING"))
    {
        using (SqlCommand cmd = new SqlCommand("YOUR_QUERY", con))
        {
            con.Open();
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(dt);
            System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
            List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
            Dictionary<string, object> row;
            foreach (DataRow dr in dt.Rows)
            {
                row = new Dictionary<string, object>();
                foreach (DataColumn col in dt.Columns)
                {
                    row.Add(col.ColumnName, dr[col]);
                }
                rows.Add(row);
            }
            return serializer.Serialize(rows);
        }
    }
}</code>

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!

Déclaration:
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