Heim >Backend-Entwicklung >C++ >Warum serialisiert JSON.NET meine Objekte in der Web-API zweimal und wie kann ich das Problem beheben?
Fehlerbehebung bei der doppelten Serialisierung mit JSON.NET in der Web-API
Ein häufiges Problem bei der Web-API-Entwicklung besteht darin, dass JSON.NET Objekte unerwartet zweimal serialisiert. Dies tritt häufig auf, wenn JsonConvert.SerializeObject(instance)
zusammen mit benutzerdefinierten Konvertern verwendet wird, die in JsonConvert.DefaultSettings
innerhalb von WebApiConfig
definiert sind. Das Ergebnis ist eine JSON-Antwort, die in doppelte Anführungszeichen mit maskierten internen Anführungszeichen eingeschlossen ist.
Die Lösung ist einfach: Vermeiden Sie die manuelle Serialisierung von Objekten mit JsonConvert.SerializeObject
. Überlassen Sie den Serialisierungsprozess stattdessen dem Web-API-Controller. Geben Sie Ihre Objekte einfach direkt zurück:
<code class="language-csharp">public IEnumerable<foobar> GetFoobars() { var foobars = ...; return foobars; }</code>
Durch die Rückgabe der foobar
-Objekte ohne explizite Serialisierung verwendet der Web-API-Controller seine Standardeinstellungen, um die Daten je nach Clientanforderung entweder in JSON oder XML zu serialisieren. Dadurch wird das Problem der doppelten Serialisierung beseitigt.
Weitere Ressourcen:
Das obige ist der detaillierte Inhalt vonWarum serialisiert JSON.NET meine Objekte in der Web-API zweimal und wie kann ich das Problem beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!