> 백엔드 개발 > C++ > C#에서 '레코드' 배열을 사용하여 DataTable을 JSON 문자열로 변환하는 방법은 무엇입니까?

C#에서 '레코드' 배열을 사용하여 DataTable을 JSON 문자열로 변환하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2025-01-21 16:36:10
원래의
383명이 탐색했습니다.

How to Convert a DataTable to a JSON String with a

C# DataTable을 JSON으로 변환: 원하는 형식 얻기

이 가이드에서는 기본 JSON 개체 형식을 피하면서 C# DataTable을 특정 구조의 JSON 문자열로 변환하는 방법을 보여줍니다. 대상 형식은 개별 레코드 개체의 "레코드" 배열을 포함하는 JSON 개체입니다.

단계:

  1. DataTable 채우기: 먼저 DataTable을 만들고 데이터베이스(또는 기타 소스)의 데이터로 채우세요.

  2. JavaScriptSerializer 사용: JavaScriptSerializer 클래스를 활용하여 JSON 직렬화를 처리합니다.

  3. 사전 목록 만들기: DataTable의 각 행을 사전으로 저장하는 목록을 구성합니다.

  4. 사전 반복 및 채우기: DataTable의 각 DataRow을 반복합니다. 각 행에 대해:

    • 새 사전을 만듭니다.
    • DataTable의 각 DataColumn을 반복합니다.
    • 열 이름(col.ColumnName)을 키로 추가하고 해당 열 값(dr[col])을 값으로 사전에 추가합니다.
    • 완성된 사전을 사전 목록에 추가하세요.
  5. 목록 직렬화: 마지막으로 JavaScriptSerializer를 사용하여 사전 목록을 직렬화하고 이를 "records" 속성이 있는 JSON 개체로 래핑합니다.

코드 예:

<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>
로그인 후 복사

이 수정된 코드는 DataTable을 지정된 JSON 형식으로 변환하는 명확하고 효율적인 방법을 제공하여 각 레코드가 "레코드" 배열 내에 올바르게 표시되도록 합니다. 필요한 using 문을 추가하는 것을 잊지 마세요.

위 내용은 C#에서 '레코드' 배열을 사용하여 DataTable을 JSON 문자열로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿