NewtonSoft.Json 为所有返回 null

NewtonSoft.Json is returning null for all

我正在为 JSON 使用 Microsoft.aspnetcore.mvc.newtonsoftjson(5.0.2),我选择了这个而不是 System.Text.Json,因为在后一个中我找不到忽略的选项循环。

当我尝试反序列化为一个对象时,它 returns 所有属性都为 null...

[DataContract]
public class UserDefinition
{
    public UserDefinition();

    public string Id { get; set; }
    public string UserName { get; set; }
    public string Password { get; set; }
    public string EmailId { get; set; }
    public string Token { get; set; }
    public string RefreshToken { get; set; }
    public List<string> AuthKey { get; set; }
    public IList<SiteDefinition> AuthBranches { get; set; }
}

需要反序列化的数据

用于反序列化的代码...

ud = JsonConvert.DeserializeObject<UserDefinition>(erpResponse);

结果

原因是您应用到 class 的属性:

[DataContract]

当它存在时,Json.net 将只考虑归因于 [DataMember] 的属性。由于您没有将此属性添加到任何属性,因此它们都将被忽略。

你有两个解决方案:

  1. 从您的 class
  2. 中删除 [DataContract]
  3. [DataMember]添加到所有相关属性