我有这个问题,当我想反序列化一个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