程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Newtosoft JSON 将零字符串值 ( {'name': '0'} ) 反序列化为 null?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Newtosoft JSON 将零字符串值 ( {'name': '0'} ) 反序列化为 null??

开发过程中遇到Newtosoft JSON 将零字符串值 ( {'name': '0'} ) 反序列化为 null?的问题如何解决?下面主要结合日常开发的经验,给出你关于Newtosoft JSON 将零字符串值 ( {'name': '0'} ) 反序列化为 null?的解决方法建议,希望对你解决Newtosoft JSON 将零字符串值 ( {'name': '0'} ) 反序列化为 null?有所启发或帮助;

我在反序列化字符串属性值为“0”的 JsON 时遇到问题。它被反序列化为 null

{
  "name":"Some name","isConfigProperty":true,"displayProperty":false,"default":"0"
}

这是我要反序列化的类:

public class PropertyModel
{
   public string name { get; set; }   
   public bool IsConfigProperty { get; set; }
   public bool displayProperty { get; set; }
   public string Default { get; set; }
}

当我将 Default 值从“0”更改为“1”或任何其他数字/值时,它会按原样反序列化。但是当我将其更改为“0”时,我又得到了 null

有人知道吗?可能是 NewtonsoftJson 中的错误还是我遗漏了什么?

谢谢。

解决方法

您可以使用 JsonConverterAttribute annotation: 来定义属性的类型。

public enum UserStatus
{
    NotConfirmed,Active,Deleted
}

public class User
{
    public string UserName { get; set; }

    [JsonConverter(typeof(StringEnumConverter))]
    public UserStatus Status { get; set; }
}

Doc

,

解决了。在 Visual Studio 调试器中一定发生了一些奇怪的事情,或者我只是不知道(我是 ASP.NET/Core/Microsoft 的新手)正如有时在调试 Blazor webassembly 时或在我不知道某些变量的情况下的样子调试时显示为空值......实际上它们不为空。 我在实现日志记录到文件时发现了这一点,并且 "default":"0" 是 0 而不是 null。

也感谢您提供的所有答案,并且很抱歉在我尝试所有解决方案之前导致此问题。

大佬总结

以上是大佬教程为你收集整理的Newtosoft JSON 将零字符串值 ( {'name': '0'} ) 反序列化为 null?全部内容,希望文章能够帮你解决Newtosoft JSON 将零字符串值 ( {'name': '0'} ) 反序列化为 null?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: