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

Lif*_*ang 3 .net c# serialization json deserialization

我试图使用Newton Json反序列化器反序列化json对象,如下所示:

{
  "grades": 97
}

Or this:

{
  "grades": ""
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何在C#中正确定义DTO类来表示这个对象?谢谢!

kat*_*330 5

请尝试使用dynamic关键字:

public class Rootobject
{
     public dynamic grades { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

它将适用于stringint.有关更多信息,请参阅使用动态类型.

更新:

然后转换成int或者string我会用Convert.ToString(),因为它处理null值和int我会用Int32.TryParse(),因为我可以更好地控制转换int,如果输入drades的格式不正确.

更新:

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