Tôi đang sử dụng Json.Net để tuần tự hóa và deserialize lớp học để json và trở lại.Bỏ qua một thuộc tính khi deserializing bằng cách sử dụng Json.Net với ItemRequired = Required.Always
Tôi đã thêm vào một lớp được đánh dấu bằng [JsonObject(ItemRequired = Required.Always)]
(hoặc Required.Always
) thuộc tính chỉ nhận mới. Điều đó dẫn tới những điều sau JsonSerializationException
:
Newtonsoft.Json.JsonSerializationException: tài sản
'<PropertyName>'
bắt buộc chưa được tìm thấy trong JSON
Tôi nghĩ đánh dấu rằng tài sản với JsonIgnore
sẽ giải quyết vấn đề này, nhưng điều đó không làm việc .
Làm cách nào tôi có thể thông báo cho Json.Net rằng thuộc tính này sẽ bị bỏ qua?
Dưới đây là một ví dụ rất nhỏ tái tạo vấn đề:
[JsonObject(ItemRequired = Required.Always)]
public class Hamster
{
public string FirstName { get; set; }
public string LastName { get; set; }
[JsonIgnore]
public string FullName { get { return FirstName + LastName; }}
}
private static void Main()
{
var hamster = new Hamster {FirstName = "Bar", LastName = "Arnon"};
var serializeObject = JsonConvert.SerializeObject(hamster);
var deserializeObject = JsonConvert.DeserializeObject<Hamster>(serializeObject);
}