我有這個問題,當我想反序列化一個jsonstring在c#中的模型。 由於某些原因,它不能正確序列化所有屬性。Json未正確反序列化爲模型c#
當它是純文本或短字符串時,某些屬性突然變爲0。
下面你會發現我的模型和一些截圖。
public class AdvancedExportViewModel
{
public string LastName { get; set; }
public string FirstName { get; set; }
public string Gender { get; set; }
public string Email { get; set; }
public string PhoneNumber { get; set; }
public string IdentificationNumber { get; set; }
public string BirthDate { get; set; }
public string Address { get; set; }
public string Zip { get; set; }
public string City { get; set; }
public string DiveLicense { get; set; }
public string OtherLicenses { get; set; }
public string FederationNumber { get; set; }
public string MembershipDate { get; set; }
public string MedicalDate { get; set; }
public string MembershipType { get; set; }
public List<MemberCustomFieldViewModel> MemberCustomFields { get; set; }
public List<MembershipCustomFieldViewModel> MembershipCustomFields { get; set; }
}
public class MembershipCustomFieldViewModel
{
public int Id { get; set; }
public int CustomFieldId { get; set; }
public bool CustomFieldYearDependent { get; set; }
public string CustomFieldName { get; set; }
public CustomFieldsTypesDTO CustomFieldType { get; set; }
public string AccountId { get; set; }
public string Value { get; set; }
public bool BoolValue
{
get { return Value == "1"; }
set { Value = value ? "1" : "0"; }
}
}
該問題位於CustomFieldViewModel的「字符串值」屬性中。
這是我的JSON,正如你所看到的Value屬性有了不同的值(字符串,shortdatetimestring和布爾作爲字符串) Json 這裏是我的反序列化的Json到我的模型 正如你所看到的,值已成爲 「0」 deserialized model
如何反序列化的json你會發現下面: List<AdvancedExportViewModel> model = JsonConvert.DeserializeObject<List<AdvancedExportViewModel>>(exportModel);
在DeserializeObject方法給出的對象(exportModel)是一個JSON字符串offcourse。 我希望這一切都很清楚。
這是問題!我修改了一下這個'公共布爾BoolValue {{0} {返回值==「1」; }如果(CustomFieldType.Equals(CustomFieldsTypesDTO.checkbox)) Value = value?} set { if「1」:「0」; } else { Value = Value; } } }'現在我得到正確的值!非常感謝! – Nico