c# - 使用可能是字符串或 int 的字段反序列化 JSON 对象的最佳做法是什么?

标签 c# .net json serialization deserialization

我正在尝试使用 Newton Json Deserializer 来反序列化 json 对象,如下所示:

{
  "grades": 97
}

Or this:

{
  "grades": ""
}

我想知道我应该如何正确定义 DTO C# 中的类来表示 this 对象?谢谢!

最佳答案

请尝试使用 dynamic 关键字:

public class Rootobject
{
     public dynamic grades { get; set; }
}

它适用于 stringint。有关详细信息,请参阅 using dynamic type .

更新:

然后转换为 intstring 我将使用 Convert.ToString() 因为它处理 null值和 int 我将使用 Int32.TryParse() 因为如果输入 drades 我可以更好地控制到 int 的转换> 格式不正确。

更新:

如果成绩为 "",则 C# 中的任何可空类型都将变为 null。为此,您可以使用 int?。但是,如果成绩类似于“3ds”,那么您必须使用一些动态方法。

关于c# - 使用可能是字符串或 int 的字段反序列化 JSON 对象的最佳做法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42307269/

相关文章:

c# - 面向方面编程?

c# - log4net 第二天启动时覆盖我的日志文件

javascript - 我需要做什么才能让我的回调函数在其他事情之前运行?

javascript - 与nodejs、mongoose 和 JSON 对象数组拼接

java - Android 可打包列表<String[]>

c# - 我可以在基类中有一个总是在子实现之前调用的默认方法吗?

c# - 这种类型的数据具有内置行为,不能以这种方式添加到模型中 : System. Int64

c# - Unity IOC、AOP & 接口(interface)拦截

c# - Treeview - mysql 将一棵树下的数字相乘

c# - 持久集合和标准集合接口(interface)