Json.Net正在NULLing Nullable<;Bool>;关于反序列化
本文关键字:Bool gt 反序列化 lt Net 正在 NULLing Nullable Json | 更新日期: 2023-09-27 18:22:09
我设置了一个WebAPI控制器,该控制器返回一个在SQL DB上具有可为null布尔值(can_personalize)的数据集。
当我直接下载.json文件时,boolean属性包含数据(true/false)。当我使用Newtonsoft JsonConvert.DescializeObject()时,每个对象的can_personalize属性值都为NULL。
我在其他几个类似的问题回答中尝试过建议,但都没有对问题进行分类。
JSON示例:
{
"$id": "1",
"$values": [
{
"$id": "2",
"TagTypeID": 1,
"tagIndex": 0,
"TagCategoryId": 1,
"validtagtypeid": 0,
"PrimaryTagTypeValue": "MC",
"PrimaryDescription": "Motorcycle - Standard",
"TagCategory": "StandardPlate",
"SecondaryTagTypeValue": "02",
"SecondaryDescription": "Personalized",
"TagEndDate": "9999-12-31T00:00:00",
"PrimaryEndDate": "9999-12-31T00:00:00",
"SecondaryEndDate": "12/31/9999",
"ValidRegex": "^[A-Z''d -]{1,7}$",
"primarytagtypeid": 78,
"secondarytagtypeid": 2,
"can_personalize": true,
"ImageName": "redacted"
}
]
}
ADO.NET模型生成的类:
public partial class ttGetTagListWithCategory_Result
{
public long TagTypeID { get; set; }
public int tagIndex { get; set; }
public Nullable<int> TagCategoryId { get; set; }
public int validtagtypeid { get; set; }
public string PrimaryTagTypeValue { get; set; }
public string PrimaryDescription { get; set; }
public string TagCategory { get; set; }
public string SecondaryTagTypeValue { get; set; }
public string SecondaryDescription { get; set; }
public Nullable<System.DateTime> TagEndDate { get; set; }
public Nullable<System.DateTime> PrimaryEndDate { get; set; }
public string SecondaryEndDate { get; set; }
public string ValidRegex { get; set; }
public Nullable<int> primarytagtypeid { get; set; }
public Nullable<int> secondarytagtypeid { get; set; }
public bool can_personalize { get; set; }
public string ImageName { get; set; }
}
JsonConvert调用:
List<ttGetTagTypeListWithCategory_Result> tagTypeWithCategory =
JsonConvert.DeserializeObject<List<ttGetTagTypeListWithCategory_Result>>
(client.DownloadString(WebApiUtility.GetTagTypeListWithCategoryUri()));
如果我将[JsonProperty(PropertyName="can_personalize")]数据注释添加到结果集类中,则数据加载到对象中。