Der integrierte JSON-Serializer von RestSharp serialisiert alle Eigenschaften eines Objekts, auch wenn sie Null oder sonst den Standardwert haben. Wie kann ich diese Eigenschaften überspringen lassen?RestSharp: Wie wird das Serialisieren von Nullwerten zu JSON übersprungen?
Antwort
Hier ist eine Verknüpfung zu einer Version, die geändert wurde, um Nullwerte zu ignorieren. Sie müssen nur die Serializer-Optionen so einstellen, dass Nullen ignoriert werden.
Eine Alternative können Sie andere json Bibliotheken (json.net, servicestack.text, etc.) verwendet werden, die Nullwerte ignorieren sie serialisiert werden zuerst:
RestRequest request = new RestRequest();
...
string jsonString = ThirdPartySerialization(jsonObject);
request.AddParameter("application/json", jsonString, ParameterType.RequestBody);
Sie verwenden können eine benutzerdefinierte IJsonSerializerStrategy
zusammen mit dem Standard SimpleJson
JSON-Serializer, um Nullwerte zu ignorieren.
Der einfachste Weg, es zu tun ist, die PocoJsonSerializerStrategy
wie unten zu erweitern.
public class IgnoreNullValuesJsonSerializerStrategy : SimpleJson.PocoJsonSerializerStrategy
{
protected override bool TrySerializeUnknownTypes(object input, out object output)
{
bool returnValue = base.TrySerializeUnknownTypes(input, out output);
if (output is IDictionary<string, object> obj)
{
output = obj.Where(o => o.Value != null).ToDictionary(o => o.Key, o => o.Value);
}
return returnValue;
}
}
Und dann verwenden Sie es als die Standard-Serializer-Strategie.
SimpleJson.SimpleJson.CurrentJsonSerializerStrategy = new IgnoreNullValuesJsonSerializerStrategy();
Danke dafür, aber derzeit nicht mit der aktuellen Version von RestSharp als mindestens 106.1.0, derzeit auf das Problem warten: https: // github. com/restasharp/RestSharp/issues/1018 Hoffentlich sobald das gelöst ist, wird dies wieder funktionieren oder zumindest etwas sehr ähnliches. –
@ JamesEby das ist falsch. Diese Lösung funktioniert immer noch und hängt nicht mit dem von Ihnen erwähnten Problem zusammen. Die Lösung, die ich gepostet habe, konfiguriert die Serialisierungsstrategie direkt in der statischen SimpleJson-Klasse, die RestSharp verwendet, und ist daher von den begrenzten Konfigurationsoptionen in RestSharp nicht betroffen. Es wird auch in der offiziellen Dokumentation erwähnt, dass es möglich ist, die Serializer Strategie so gestalten (am Ende der Seite): https://github.com/restsharp/RestSharp/wiki/Deserialization – Conyc
Was ich sage ist, Diese statische Klasse existiert im Code nicht mehr oder zumindest scheint sie entfernt worden zu sein. Ich konnte keine solche SimpleJson-Konfigurationsklasse in RestSharp ab der neuesten Version finden. Wenn ich falsch liege und Sie es immer noch sehen, lassen Sie es mich wissen. –
- 1. Wie RESTSHARP Anfrage Objekt zu JSON String serialisieren
- 2. Wie poste ich Raw Json mit RestSharp?
- 3. Serialisieren von Nullwerten aus einer REST-API-Antwort
- 4. Warum wird das erste Link-Objekt übersprungen?
- 5. Wie db.Model Objekte zu json serialisieren?
- 6. Serialisieren eines Objekts zu JSON
- 7. Wie in einem JSON von Entität serialisieren?
- 8. DataMember wird beim Serialisieren nach JSON ignoriert
- 9. RestSharp Deserialisierung mit JSON Array
- 10. DataContractJsonSerializer zum Überspringen von Knoten mit Nullwerten
- 11. JSON RestSharp Deserilisierung Antwortdaten null
- 12. Play-Framework: Wie serialisieren/deserialisieren eine Aufzählung zu/von JSON
- 13. Wie serialisieren/deserialisieren Fallklassen zu/von Json in Play 2.1
- 14. Console.ReadLine wird übersprungen
- 15. Wie Schlüssel mit Nullwerten von Argonaut Json entfernen Objekten
- 16. Soll ich mit NSCoder zu JSON serialisieren?
- 17. Wie scala Karte zu Json in PlayFramework zu serialisieren?
- 18. JSON mit Pluszeichen serialisieren führt zu ungültigem JSON
- 19. Ruby-Objekt zu JSON und zurück serialisieren?
- 20. Serialisieren JSON-Objekt effektiv
- 21. Benutzerdefiniertes Json-Wörterbuch Serialisierung mit RestSharp/ASP.NET WebApi
- 22. Serialisieren zu JSON in .NET 2.0
- 23. Mein zweiter Scanf() übersprungen wird
- 24. Wie zu JSON Embed-Struktur in Golang zu serialisieren
- 25. Wie vermeidet man Serialisierung von Nullwerten in HashMap?
- 26. ungültiger JSON String - UnsupportedMediaType - RestSharp POST-Anfrage
- 27. Serialisieren Sie komplexe Formular zu JSON-Objekt mithilfe von jQuery
- 28. JQuery delay() -Funktion wird übersprungen
- 29. RestSharp-Serialisierung zu JSON, Objekt verwendet SerializeAs-Attribut nicht wie erwartet
- 30. R - Serialisieren von R-Modellen als JSON
Json.NET hat einen solchen Parameter. 'JsonSerializerSettings.NullValueHandling = NullValueHandling.Ignore' ... weiß nicht über RestSharp – thenewseattle