构建一个类以将json反序列化为一个属性可以是两种不同类型

时间:2018-04-04 19:00:38

标签: c# json parsing json.net

我有一些Json,我想解析一个c#对象,可以像这样: { "SomeObject" : { "name" : "something", "birthMonth" : "may" } }

或者像这样:

{ "SomeObject" : { "name" : "something", "birthMonth" : 5 } }

有没有办法可以为SomeObject类建模,以便birthMonth属性可以是字符串或整数?

1 个答案:

答案 0 :(得分:1)

是。您可以使用dynamic关键字。

public class SomeObject {
    public string name {get;set;}
    public dynamic birthMonth {get;set;}
}

但更好的方法可能是使用一些json(依赖于框架)技术将may值转换为5.例如在newtonsoft.json中有一个变体是使用您自己的{{1}实现}}

这是一个例子: How to implement custom JsonConverter in JSON.NET to deserialize a List of base class objects?