」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 我如何在不使用JSON.NET序列化的情況下進行對json屬性的序列化?

我如何在不使用JSON.NET序列化的情況下進行對json屬性的序列化?

發佈於2025-01-27
瀏覽:507

How Can I Deserialize JSON Properties Without Serializing Them Using Json.Net?

使用Json.Net反序列化屬性而不序列化

在某些情況下,您可能需要從已序列化的JSON物件反序列化屬性,但又不想在序列化時將其寫回。以下是如何使用Json.Net實現此目的的方法。

方法一:ShouldSerialize方法

Json.Net允許您透過在類別中定義ShouldSerialize方法有條件地序列化屬性。建立一個ShouldSerializeBlah()方法(其中Blah是您不想序列化的屬性),並使其始終傳回false:

public bool ShouldSerializeObsoleteSetting()
{
    return false;
}

方法二:使用JObject運算JSON

使用JObject.FromObject將物件載入到JObject中。在寫入JSON之前刪除不需要的屬性:

JObject jo = JObject.FromObject(config);
jo["ObsoleteSetting"].Parent.Remove();
json = jo.ToString();

方法三:屬性濫用

將[JsonIgnore]屬性套用到您不想序列化的屬性。定義一個與原始屬性具有相同類型和名稱的私有屬性設定器,並使用相同的JSON名稱將[JsonProperty]屬性套用到它:

[JsonIgnore]
public Fizz ObsoleteSetting { get; set; }

[JsonProperty("ObsoleteSetting")]
private Fizz ObsoleteSettingAlternateSetter
{
    set { ObsoleteSetting = value; }
}

透過使用上述方法之一,您可以選擇性地排除序列化中的屬性,同時仍允許反序列化。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3