我正在尋找一種方法,使用Json.Net將模型部分序列化爲Json。部分序列化應該如何看起來像我想要定義父對象的屬性。所以對於不同的父模型,部分序列化看起來可能不同。爲了說明什麼,我想在這裏的一些代碼:基於屬性屬性的模型部分序列化
private class MyTestObject
{
[SerializeOnly("TestValue1")]
[SerializeOnly("TestValue3")]
public ComplexTestObject Property1 { get; set; }
public MyTestObject()
{
Property1 = new ComplexTestObject();
}
}
private class ComplexTestObject
{
public string TestValue1 { get; set; }
public string TestValue2 { get; set; }
public string TestValue3 { get; set; }
public ComplexTestObject()
{
TestValue1 = "value1";
TestValue2 = "value2";
TestValue3 = "value3";
}
}
現在,當我序列MyTestObject
類的實例,我想以下JSON:
{
"Property1" : {
"TestValue1" : "value1",
"TestValue3" : "value3",
}
}
你可以看到SerializeOnly
被用來定義屬性將被序列化。
爲了達到這個目的,我可以創建一個SerializeOnlyAttribute
。當試圖在自定義Serialization ContractResolver中使用它時,我只能看到特定成員的屬性,所以我看不到任何SerializeOnlyAttribute
,因爲它們駐留在父級上。
有沒有一種簡單的方法來實現與Json.Net所需的行爲?有可能編寫一個自定義的JsonConverter,但是如何構建它,使得只處理屬性被覆蓋,並仍然使用默認轉換器?
太棒了!我喜歡這個解決方案! Thx :-) – Sjoerd222888
沒問題;很高興我能幫上忙。 –