¿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"}
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:Entonces, puedes serializar el objeto utilizando el método
JsonConvert.SerializeObject
como se muestra a continuación:Esto te dará la salida esperada:
{"tst":"some value"}
.