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]
的属性。由于您没有将此属性添加到任何属性,因此它们都将被忽略。
你有两个解决方案:
- 从您的 class
中删除 [DataContract]
- 将
[DataMember]
添加到所有相关属性
我正在为 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]
的属性。由于您没有将此属性添加到任何属性,因此它们都将被忽略。
你有两个解决方案:
- 从您的 class 中删除
- 将
[DataMember]
添加到所有相关属性
[DataContract]