說例如我試圖將具有10個字段的對象轉換爲Json,但是我需要修改序列化這些字段1的過程。此刻,我不得不用手工寫出來的每一個屬性是這樣的:如何使用Json.net修改僅一個字段的Json序列化?
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteStartObject();
writer.WritePropertyName("Field1");
serializer.Serialize(writer, value.Field1);
writer.WritePropertyName("Field2");
serializer.Serialize(writer, value.Field2);
writer.WritePropertyName("Field3");
serializer.Serialize(writer, value.Field3);
writer.WritePropertyName("Field4");
serializer.Serialize(writer, Convert.ToInt32(value.Field4)); //Modifying one field here
//Six more times
writer.WriteEndObject();
}
這是不好的代碼,它的真正刺激有寫。有什麼辦法讓Json.net自動地序列化除一個屬性以外的所有屬性?或者可能自動生成一個JObject並修改它?
你在找這個嗎? http://james.newtonking.com/json/help/index.html?topic=html/T_Newtonsoft_Json_JsonConvert.htm –
不,因爲JsonConvert只需要獲取對象中的每個字段並對它們進行序列化。你可以使用[JsonIgnore]來跳過屬性,但這與你擁有的控件一樣多。 – Miguel