"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué JSON.NET es doble serialización de mis objetos?

¿Por qué JSON.NET es doble serialización de mis objetos?

Publicado el 2025-02-04
Navegar:751

Why is JSON.NET Double Serializing My Objects?

json.net dual -seShencialization Problem

Cuando se usa el objeto de serialización JSON.NET, se puede encontrar un problema extraño: el objeto es dual serialización. Esto hará que los datos de JSON se envuelvan en citas duales en la respuesta, y las citas integradas también son justas.

causa principal

La causa raíz es el método de serialización. Si usa jsonConvert.SerializeObject (instancia)

si usa

jsonConvert.SerialililiLialieBoct (instancia). Esto se debe a que primero lo serializa en una cadena, y luego el controlador API lo serializará aún más a la palabra de cadena JavaScript. solución

Para resolver este problema, solo necesita volver directamente al objeto: public IEnumerable getfoobars () {{ var foobars = ...; Regresar foobars; }

Método de reemplazo
public IEnumerable GetFoobars()
{
    var foobars = ...;
    return foobars;
}
httpconfiguration

: config.formatters.jsonformatter.sersettings.converters.add config.Formatters.jsonFormatter.SerializerSettings.Converters.Add (new BarConverter ());

Otros consejos

Asegúrese de que el convertidor personalizado esté implementado correctamente.

config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new FooConverter());
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new BarConverter());
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3