Maison >développement back-end >C++ >Comment convertir un DataTable en chaîne JSON avec un tableau « enregistrements » en C# ?

Comment convertir un DataTable en chaîne JSON avec un tableau « enregistrements » en C# ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-21 16:36:10473parcourir

How to Convert a DataTable to a JSON String with a

Conversion C# DataTable en JSON : obtenir le format souhaité

Ce guide montre comment convertir un DataTable C# en une chaîne JSON avec une structure spécifique, en évitant le format d'objet JSON par défaut. Le format cible est un objet JSON contenant un tableau « enregistrements » d'objets d'enregistrement individuels.

Étapes :

  1. Remplissez le DataTable : Commencez par créer un DataTable et remplissez-le avec les données de votre base de données (ou de toute autre source).

  2. Utilisez JavaScriptSerializer : Utilisez la classe JavaScriptSerializer pour gérer la sérialisation JSON.

  3. Créer une liste de dictionnaires : Construisez une liste pour stocker chaque ligne du DataTable sous forme de dictionnaire.

  4. Itérer et remplir les dictionnaires : Parcourez chaque DataRow du DataTable. Pour chaque ligne :

    • Créez un nouveau dictionnaire.
    • Parcourez chaque DataColumn dans le DataTable.
    • Ajoutez le nom de la colonne (col.ColumnName) comme clé et la valeur de la colonne correspondante (dr[col]) comme valeur dans le dictionnaire.
    • Ajoutez le dictionnaire complété à la liste des dictionnaires.
  5. Sérialiser la liste : Enfin, sérialisez la liste des dictionnaires à l'aide de JavaScriptSerializer, en l'enveloppant dans un objet JSON avec une propriété "records".

Exemple de code :

<code class="language-csharp">using System.Web.Script.Serialization;
using System.Data;
using System.Collections.Generic;

public string ConvertDataTableToJson()
{
    DataTable dataTable = new DataTable();
    // Fill dataTable with data from your database

    JavaScriptSerializer serializer = new JavaScriptSerializer();
    List<Dictionary<string, object>> records = new List<Dictionary<string, object>>();

    foreach (DataRow row in dataTable.Rows)
    {
        Dictionary<string, object> record = new Dictionary<string, object>();
        foreach (DataColumn column in dataTable.Columns)
        {
            record.Add(column.ColumnName, row[column]);
        }
        records.Add(record);
    }

    return serializer.Serialize(new { records = records });
}</code>

Ce code révisé fournit une méthode claire et efficace pour convertir un DataTable au format JSON spécifié, garantissant que chaque enregistrement est correctement représenté dans un tableau « enregistrements ». N'oubliez pas d'ajouter les using déclarations nécessaires.

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