es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe alguna forma de serializar el nombre de una propiedad en Json utilizando Newtonsoft?

Tengo una clase como se muestra a continuación, la cual quiero serializar de manera que la clave JSON sea el “JsonPropertyName” de la variable, pero la cadena serializada tenga el nombre de la variable como clave JSON.

using System.Text.Json.Serialization;

public class TestClass
{
    [JsonPropertyName("tst")]
    public string Test { get; set; }
}

El serializador utiliza Newtonsoft.Json.

var json = JsonConvert.SerializeObject(new TestClass { Test = "some value" });
Console.WriteLine(json);
  • Salida actual: {"Test":"some value"}
  • Salida esperada: {"tst":"some value"}

¿Existe alguna forma de serializar el objeto con el nombre de la propiedad como clave?

{"tst":"some value"}

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una manera de serializar el objeto con el nombre de la propiedad como clave {"tst":"some value"} utilizando Newtonsoft.Json. Para hacer esto, necesitas utilizar el atributo [JsonProperty] en lugar del atributo [JsonPropertyName] como se muestra a continuación:

    using Newtonsoft.Json;
    
    public class TestClass
    {
        [JsonProperty("tst")]
        public string Test { get; set; }
    }
    

    Entonces, puedes serializar el objeto utilizando el método JsonConvert.SerializeObject como se muestra a continuación:

    var json = JsonConvert.SerializeObject(new TestClass {Test = "some value"});
    Console.WriteLine(json);
    

    Esto te dará la salida esperada: {"tst":"some value"}.

Comments are closed.