![](/img/trans.png)
[英]What is the difference between PreserveReferencesHandling and ReferenceLoopHandling in Json.Net?
[英]Newtonsoft Json.NET ReferenceLoopHandling and JavascriptDateTimeConverter
我需要Json.NET使用JavaScriptDateTimeConverter和ReferenceLoopHandling.Ignore進行序列化。 據我所知,JsonConvert.SerializeObject上的所有簽名都不允許設置這兩個設置。
我可以:
var json = JsonConvert.SerializeObject(this.Data, new JavaScriptDateTimeConverter());
或者我可以這樣做:
var json = JsonConvert.SerializeObject(this.Data, new JsonSerializerSettings()
{
ReferenceLoopHandling = ReferenceLoopHandling.Serialize
});
但我不能兩者兼顧。 我為SerializeObject獲得的簽名如下。 第6和第5個允許我分別做以上。
我已經考慮過在全球范圍內設置這些設置,但我沒有太多運氣。
有人知道使用這兩種設置序列化的方法嗎?
您可以JavaScriptDateTimeConverter
Converters
屬性在JsonSerializerSettings
'中指定JavaScriptDateTimeConverter
:
var json = JsonConvert.SerializeObject(this.Data, new JsonSerializerSettings()
{
Converters = new List<JsonConverter> { new JavaScriptDateTimeConverter() },
ReferenceLoopHandling = ReferenceLoopHandling.Serialize
});
實際上, JsonConverter
數組內部的重載會創建一個JsonSerializerSettings
並設置其Converters屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.