c# serialización y deserialización de JSON

Introducción:

JSON (nombre completo JavaScript ObjectNotation) es un formato ligero de intercambio de datos. Se basa en un subconjunto del estándar de sintaxis de JavaScript. JSON es un formato de texto completamente independiente del idioma que se puede transferir fácilmente a través de varias redes, plataformas y programas. La sintaxis de JSON es simple, fácil de leer y escribir para los humanos, y fácil de analizar y generar para las máquinas.

Descargar el paquete NuGet

El primer paso para operar JSON en C# es descargar el paquete NuGet requerido Newtonsoft.Json.Cabe señalar que en una misma solución, diferentes tipos de paquetes Nuget descargados deben mantenerse en la misma versión, de lo contrario se puede reportar un error.

deserialización

Cadena cadena convertida a clase

primero crea una clase

public class Site
{
    public int Id { get; set; }
    public string Name { get; set; }
}

Convierta la cadena en una clase de entidad y luego imprímala a través de la clase de entidad

    [Test]
    public void TestJsonToObject()
    {
        string json = "{\"Id\":1,\"Name\":\"爱吃香蕉的阿豪\"}";
        var site = JsonConvert.DeserializeObject<Site>(json) as Site;
        Console.WriteLine($"Id={site.Id}");
        Console.WriteLine("Nmae="+site.Name);
    }

archivo json en clase

En el trabajo real, cuando tenemos mucho contenido json, es imposible escribirlo en la clase, por lo que debemos escribirlo en un archivo json y luego pasarlo por la ruta

Crear una clase de datos

public class JsonData
{
    public List<Data> data { get; set; }
}

public class Data
{
    public int id { get; set; }
    public string name { get; set; }
}

Crear un archivo json

{
  "data": [
    {
      "id" : 1,
      "name" : "爱吃香蕉的阿豪"
    },
    {
      "id" : 2,
      "name" : "张三"
    },
    {
      "id" : 3,
      "name" : "李四"
    }
  ]
}

clase de prueba

    [Test]
    public void TestJsonText()
    {
        var json = File.ReadAllText(@"D:\project\c#\Solution\Project\JSON\data.json");
        var JsonData = JsonConvert.DeserializeObject<JsonData>(json);
        foreach (var data in JsonData.data)
        {
            Console.WriteLine("id="+data.id + "   data="+data.name);
        }
    }

Publicación por entregas

Siga la clase de sitio deserializado, primero cree una nueva clase, establezca el valor del campo y luego serialícelo en una cadena e imprímalo

    [Test]
    public void TestObjectToJson()
    {
        Site site = new() { Id = 2, Name = "laowan" };
        var serializeObject = JsonConvert.SerializeObject(site);
        Console.WriteLine(serializeObject);
    }

Supongo que te gusta

Origin blog.csdn.net/weixin_65243968/article/details/129719604
Recomendado
Clasificación