Heim >Backend-Entwicklung >C++ >Wie konvertiere ich eine DataTable in einen JSON-String mit einem „records'-Array in C#?

Wie konvertiere ich eine DataTable in einen JSON-String mit einem „records'-Array in C#?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-21 16:36:10470Durchsuche

How to Convert a DataTable to a JSON String with a

Konvertierung von C# DataTable in JSON: Erreichen des gewünschten Formats

Diese Anleitung zeigt, wie Sie eine C#-Datentabelle in einen JSON-String mit einer bestimmten Struktur konvertieren und dabei das Standard-JSON-Objektformat vermeiden. Das Zielformat ist ein JSON-Objekt, das ein „records“-Array einzelner Datensatzobjekte enthält.

Schritte:

  1. Datentabelle füllen: Beginnen Sie damit, eine Datentabelle zu erstellen und diese mit Daten aus Ihrer Datenbank (oder einer anderen Quelle) zu füllen.

  2. JavaScriptSerializer verwenden: Verwenden Sie die Klasse JavaScriptSerializer, um die JSON-Serialisierung zu verarbeiten.

  3. Erstellen Sie eine Liste mit Wörterbüchern: Erstellen Sie eine Liste, um jede Zeile der DataTable als Wörterbuch zu speichern.

  4. Wörterbücher iterieren und füllen: Jedes DataRow in der Datentabelle durchlaufen. Für jede Zeile:

    • Erstellen Sie ein neues Wörterbuch.
    • Durchlaufen Sie jedes DataColumn in der Datentabelle.
    • Fügen Sie den Spaltennamen (col.ColumnName) als Schlüssel und den entsprechenden Spaltenwert (dr[col]) als Wert zum Wörterbuch hinzu.
    • Fügen Sie das fertige Wörterbuch zur Liste der Wörterbücher hinzu.
  5. Liste serialisieren: Schließlich serialisieren Sie die Liste der Wörterbücher mit JavaScriptSerializer, indem Sie sie in ein JSON-Objekt mit der Eigenschaft „records“ einschließen.

Codebeispiel:

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

Dieser überarbeitete Code bietet eine klare und effiziente Methode zum Konvertieren einer DataTable in das angegebene JSON-Format und stellt sicher, dass jeder Datensatz innerhalb eines „Records“-Arrays ordnungsgemäß dargestellt wird. Denken Sie daran, die erforderlichen using-Anweisungen hinzuzufügen.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich eine DataTable in einen JSON-String mit einem „records'-Array in C#?. 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