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()));

Json.Net正在NULLing Nullable<;Bool>;关于反序列化

如果我将[JsonProperty(PropertyName="can_personalize")]数据注释添加到结果集类中,则数据加载到对象中。