Escribir JSON en un archivo en C#

Muhammad Zeeshan 15 febrero 2024
  1. El formato JSON
  2. Descargar e instalar Json.NET
  3. Escriba JSON en un archivo usando Json.NET
Escribir JSON en un archivo en C#

En esta publicación, aprenderemos a usar el lenguaje de programación C# para construir objetos JSON básicos y escribirlos en un archivo. Para comenzar, debe tener una comprensión sólida de lo que es JSON.

El formato JSON

JSON significa Notación de objetos de JavaScript y es un estándar para el intercambio de datos mínimos. Utiliza una parte del lenguaje de programación JavaScript como base.

JSON es una estructura independiente del lenguaje total y no utiliza caracteres especiales. Es simple para las personas leer y escribir en JSON y para las computadoras producir e interpretar datos JSON.

Una alternativa a XML, proporciona soporte integrado para los tipos de datos más fundamentales. El término Notación de objetos de JavaScript se refiere a la sintaxis utilizada tanto en JavaScript como en JSON.

Dado que es un lenguaje basado en texto, es más sencillo de leer para el usuario y, al mismo tiempo, es más sencillo de interpretar para las máquinas. No hace unos años, los programadores solían confiar en XML para facilitar la comunicación entre diferentes aplicaciones de servicio, como los servicios web.

Sin embargo, los usuarios comenzaron a investigar JSON como un posible estándar de serialización de datos alternativo a medida que la API web ganaba popularidad.

Descargar e instalar Json.NET

Para serializar datos en formato JSON, podemos utilizar la clase nativa proporcionada por .NET Framework o utilizar cualquier otro componente de terceros. Usaremos la biblioteca de serialización NewtonSoft para serializar la estructura JSON en este tutorial.

  1. Para comenzar, debemos preparar el lugar de trabajo de Microsoft Visual Studio e instalar el paquete Newtonsoft.

  2. Inicie Microsoft Visual Studio y elija Archivo en la barra de menú, luego Nuevo y la opción Proyecto.

  3. Seleccione Visual C# en el lado izquierdo y luego haga clic en Aplicación de consola (.NET Framework). Asigne un nombre apropiado y localice su proyecto.

    Lo llamamos writejsonByZeeshan. Después de darle un nombre, haga clic en Aceptar.

    Instalar Json.NET - nuevo archivo

  4. Ahora que el proyecto está creado, incluiremos una referencia a Json.NET. Para ello, haremos clic derecho en el área Solution Explorer y elegiremos Administrar NuGet Packages for Solution.

  5. Después de seleccionar Newtonsoft.Json, elija Instalar en el panel de la derecha.

    Instalar Json.NET

  6. Una vez finalizada la descarga, el componente se instalará y Json.NET mostrará una marca de verificación en color verde.

    Descargar Json.NET

  7. Ahora, descubrirá que se ha agregado una referencia para Newtonsoft.json si va a la referencia en el Explorador de soluciones. Después de agregar Newtonsoft.json, es hora de que construyamos el código que creará JSON.

Escriba JSON en un archivo usando Json.NET

La referencia a Newtonsoft se incluyó previamente en nuestra solución cuando se desarrolló por primera vez. Ahora es el momento de comenzar a trabajar en el primer código que serializará y producirá un JSON.

Comencemos con una estructura JSON básica y luego, a medida que avanzamos, avancemos progresivamente hacia estructuras más complicadas mientras repasamos el código línea por línea y analizamos su funcionamiento con mayor profundidad. Comencemos poniendo estructura en un archivo JSON agregando primero una nueva clase a nuestro proyecto.

  1. Para comenzar, agregue las siguientes bibliotecas en Main():

    using Newtonsoft.Json;
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
  2. Para agregar una clase, haga clic con el botón derecho en el panel Explorador de soluciones, haga clic con el botón izquierdo en Agregar y elija una clase del menú desplegable. Después de darle un nombre aceptable, como llamamos a la clase Estudiante, el último paso es hacer clic en el botón Agregar.

    C# Escribir JSON en el archivo - Agregar clase de estudiante

  3. Comencemos a definir los objetos variables en la nueva clase después de crearlos con éxito. Incluimos el Nombre, Rollnum, Grado y Ciudad en la clase Estudiante y le asignamos los siguientes valores.

    class Student {
      public string Name = "Muhammad Zeeshan";
      public int Rollnum = 3227;
      public string Grade = "A";
      public string City = "Islamabad";
    }
    
  4. Entonces, crearemos una instancia de la clase Estudiante llamada s en nuestra función Principal.

    Student s = new Student();
    
  5. Luego, con el método JsonConvert.SerializeObject, transformaremos el objeto de clase que acabamos de especificar en formato JSON. Pongamos los datos serializados en una variable de cadena llamada SerializedJsonResult.

    string SerializedJsonResult = JsonConvert.SerializeObject(s);
    
  6. Ahora que los datos se serializaron en formato JSON, debemos proporcionar una ubicación para guardarlos. Para ello se utilizará una variable de cadena denominada jsonpath.

    string jsonpath = "D:/jsondata/studentdata.json";
    
  7. Usaremos la condición if para comprobar si la ruta es correcta o no. Si la ruta ya está allí, el código sobrescribirá la existente creando una nueva, destruyendo la anterior.

    if (File.Exists(jsonpath)) {
      File.Delete(jsonpath);
      using (var st = new StreamWriter(jsonpath, true)) {
        st.WriteLine(SerializedJsonResult.ToString());
        st.Close();
      }
    }
    
  8. Si la ruta no está disponible, else-if creará una nueva ruta y escribirá el JSON en el archivo.

    else if (!File.Exists(jsonpath)) {
      using (var st = new StreamWriter(jsonpath, true)) {
        st.WriteLine(SerializedJsonResult.ToString());
        st.Close();
      }
    }
    

Código fuente completo

Código de ejemplo (Clase Estudiante):

class Student {
  public string Name = "Muhammad Zeeshan";
  public int Rollnum = 3227;
  public string Grade = "A";
  public string City = "Islamabad";
}

Código de ejemplo (Clase Principal):

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace writejsonByZeeshan {
  class Program {
    static void Main(string[] args) {
      Student s = new Student();
      string SerializedJsonResult = JsonConvert.SerializeObject(s);

      string jsonpath = "D:/jsondata/studentdata.json";
      if (File.Exists(jsonpath)) {
        File.Delete(jsonpath);
        using (var st = new StreamWriter(jsonpath, true)) {
          st.WriteLine(SerializedJsonResult.ToString());
          st.Close();
        }
      }

      else if (!File.Exists(jsonpath)) {
        using (var st = new StreamWriter(jsonpath, true)) {
          st.WriteLine(SerializedJsonResult.ToString());
          st.Close();
        }
      }
    }
  }
}

Producción :

{"Name":"Muhammad Zeeshan","Rollnum":3227,"Grade":"A","City":"Islamabad"}
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

Artículo relacionado - Csharp JSON

Artículo relacionado - Csharp File