System.Text.json Contract ResolverC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 System.Text.json Contract Resolver

Post by Anonymous »

Ich habe einen Unit -Test implementiert, um einen Patch -Endpunkt mit "System.Text.json" aufzurufen, um die Daten zu serialisieren und als Inhalt zu senden. Ich bekam immer eine schlechte Anfrage, bis ich herausfand, dass der Serializer das gesamte Patch -Dokument in der Liste "Operationen" zusammenfasst und eine Eigenschaft namens "Contractresolver" fügt. Verwenden Sie Newtonsoft.json Serializer, das zumindest standardmäßig die zusätzliche Eigenschaft hinzufügt, und es funktioniert ordnungsgemäß, da die API den jSonDocumentPatch akzeptiert. JSON "Serializer funktioniert so und konvertieren nicht einfach zu JSON, genau wie es Newtonsoft tut? oder wenn es möglich ist, etwas zu konfigurieren, um dies zu verhindern. Ich möchte nicht beide Serialisierer innerhalb des Projekts verwenden. Ich war Dokumentation und das taucht in Bezug auf nichts auf. < /P>
Vielen Dank für Ihre Zeit beim Lesen, auch wenn Sie keine Antwort haben.
Ein Beispielcode für die Serialisierung: < /p>

Code: Select all

var patchOperations = new JsonPatchDocument();
patchOperations.Replace(m => m.IntValue, 123);
patchOperations.Remove(m => m.StringValue);

var systemSerializer = JsonSerializer.Serialize(patchOperations);
var newtonSerializer = JsonConvert.SerializeObject(patchOperations);
Die Ergebnisse sind:
systemerializer

Code: Select all

{
"Operations":[
{
"value":123,
"OperationType":2,
"path":"/IntValue",
"op":"replace",
"from":null
},
{
"value":null,
"OperationType":1,
"path":"/StringValue",
"op":"remove",
"from":null
}
],
"ContractResolver":{

}
}
newtonserializer

Code: Select all

[
{
"value":123,
"path":"/IntValue",
"op":"replace"
},
{
"path":"/StringValue",
"op":"remove"
}
]

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post