RestSharp的內置JSON序列化程序會序列化所有對象的屬性,即使它們爲空或默認值。我怎樣才能讓它跳過這些屬性?RestSharp:如何跳過將空值序列化爲JSON?
回答
以下是指向已被修改爲忽略空值的版本的鏈接。您只需將序列化程序選項設置爲忽略空值。
另外,您也可以使用其他的JSON庫(json.net,servicestack.text等)支持忽略空值,第一序列化:
RestRequest request = new RestRequest();
...
string jsonString = ThirdPartySerialization(jsonObject);
request.AddParameter("application/json", jsonString, ParameterType.RequestBody);
您可以使用自定義IJsonSerializerStrategy
以及默認的SimpleJson
JSON序列化程序忽略空值。
最簡單的方法就是像下面這樣擴展PocoJsonSerializerStrategy
。
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;
}
}
然後將其用作默認的序列化器策略。
SimpleJson.SimpleJson.CurrentJsonSerializerStrategy = new IgnoreNullValuesJsonSerializerStrategy();
感謝這一點,但目前沒有使用當前版本的RestSharp,至少106.1.0,目前正在等待問題: https:// github。 com/restsharp/RestSharp/issues/1018 希望一旦解決了這個問題,將會再次起作用,或者至少是非常相似的東西。 –
@JamesEby不正確。該解決方案仍然有效,與您提到的問題無關。 我發佈的解決方案直接在RestSharp使用的靜態SimpleJson類上配置串行器策略,因此不會受到RestSharp中有限配置選項的影響。 甚至在官方文檔中提到,可以像這樣自定義序列化策略(在本頁的底部):https://github.com/restsharp/RestSharp/wiki/Deserialization – Conyc
我在說的是該代碼中不再存在該靜態類,或者至少它似乎已被刪除。在最新版本中,我沒有在RestSharp中找到這樣的SimpleJson配置類。如果我錯了,你仍然看到它,請讓我知道。 –
- 1. RestSharp JSON序列化
- 2. 如何在RestSharp中反序列化JSON?
- 3. 如何將restsharp請求對象序列化爲json字符串
- 4. RestSharp不反序列化JSON對象列表,始終爲空
- 5. 如何將C#空列表序列化爲JSON空數組?
- 6. RestSharp反序列化JSON的陣列
- 7. Restsharp - 如何將枚舉列表序列化爲字符串
- 8. RestSharp和OData - 問題反序列化JSON
- 9. 序列化vb.net類成JSON與RestSharp
- 10. RestSharp無法正確反序列化JSON
- 11. JSON。參考將反序列化爲空
- 12. 使用RestSharp反序列化列表時獲得空值
- 13. 如何在Newtonsoft json中如果跳過序列化對象?
- 14. 如何將UIImage序列化爲JSON?
- 15. 如何將ObjectId序列化爲JSON?
- 16. 如何將ASObject序列化爲JSON
- 17. 如何將此序列化爲JSON?
- 18. 如何將對象序列化爲JSON?
- 19. 如何將控件序列化爲JSON?
- 20. ServiceStack.Text如何將類序列化爲JSon
- 21. 當值爲空時,如何使用JsonConverter反序列化JSON?
- 22. 我錯過了什麼? RestSharp不會反序列化Json
- 23. RestSharp - 如何影響JSON序列化(命名)?
- 24. 如何跳過jackson json反序列化中的wrapper對象
- 25. RestSharp如何反序列化此Xml?
- 26. RestSharp序列化忽略ElementName值
- 27. 如何將空ImageField序列化爲JsonResponse?
- 28. C#XML序列化數組 - 跳過「空」字符串值
- 29. MVC:如何通過AJAX將挖空對象序列化爲JSON屬性
- 30. RestSharp/Json.NET序列化數組作爲JSON對象
Json.NET有這樣一個參數。 'JsonSerializerSettings.NullValueHandling = NullValueHandling.Ignore' ...不知道關於RestSharp – thenewseattle