"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como escrever dados JSON com eficiência em um arquivo em C#?

Como escrever dados JSON com eficiência em um arquivo em C#?

Postado em 2025-03-23
Navegar:174

How to Efficiently Write JSON Data to a File in C#?

c# json writing de arquivo: um guia abrangente

Este guia detalha métodos eficientes para escrever dados JSON em arquivos em c#. O desafio está em formatar corretamente dados na sintaxe JSON válida, incluindo os colchetes necessários.

modelo de dados:

public class DataItem
{
    public int Id { get; set; }
    public int SSN { get; set; }
    public string Message { get; set; }
}

Dados de amostra:

[
  {
    "Id": 1,
    "SSN": 123,
    "Message": "whatever"
  },
  {
    "Id": 2,
    "SSN": 125,
    "Message": "whatever"
  }
]

Solução usando newtonsoft.json (recomendado):

newtonsoft.json oferece uma abordagem altamente eficiente, evitando buffer de string.

List dataItems = new List();
dataItems.Add(new DataItem { Id = 1, SSN = 2, Message = "A Message" });

// Method 1: Serialize to string, then write to file
string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(dataItems.ToArray());
System.IO.File.WriteAllText(@"D:\path.txt", jsonString);


// Method 2: Direct serialization to file stream (more efficient)
using (StreamWriter file = File.CreateText(@"D:\path2.txt"))
{
    Newtonsoft.Json.JsonSerializer serializer = new Newtonsoft.Json.JsonSerializer();
    serializer.Serialize(file, dataItems);
}

Solução usando System.text.json (.net Core 3.0 e posterior):

System.text.json é uma biblioteca interna que fornece funcionalidade semelhante com recursos assíncronos.

using System.Text.Json;

List dataItems = new List();
dataItems.Add(new DataItem { Id = 1, SSN = 2, Message = "A Message" });

// Synchronous method
string jsonString = JsonSerializer.Serialize(dataItems);
File.WriteAllText(@"D:\path.json", jsonString);

// Asynchronous method
await using FileStream createStream = File.Create(@"D:\pathAsync.json");
await JsonSerializer.SerializeAsync(createStream, dataItems);

Escolha o método que melhor se adapte às necessidades e à versão .NET do seu projeto. Para um desempenho ideal, especialmente com grandes conjuntos de dados, a serialização direta do fluxo de arquivos (Método 2 usando Newtonsoft.json ou o método assíncrono usando System.Text.json) é recomendado.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3