使用嵌套转换器使用JsonConvert.DeserializeObject <t>将JSON子对象值反序列化为父对象

时间:2018-03-07 19:19:33

标签: c# json json.net deserialization

我收到了一些我希望存储在单个对象中的奇怪格式的JSON。它看起来像这样:

{
    "parentObject": 
    {
        "id": 123456,
        "pointlessChildObject": 
        {
            "stringThatCouldBeStoredInParent": "test",
            "epochTimeThatCouldBeStoredInParent": "1520452800"
        }
    }
}

起初,我认为这很简单,感谢Brian Rogers的解决方案,我发现:Can I specify a path in an attribute to map a property in my class to a child property in my JSON?

但是,如果您实施此解决方案,则无法使用其他转换器同时将这些值转换为其他值(例如,对于纪元时间,嵌套[JsonConverter(typeof(SecondsEpochConverter))])。当然,因为这是C#,你不能拥有与你的类型不同的集合(在集合中将int转换为DateTime)。我试图将代码添加到Brian的解决方案,以便它调用嵌套转换器,但现在我们进入荒谬的领域;我创建了一次使用JSONTextReader只是为了将值传递给嵌套的转换器,我非常确定我已经过度思考了这一点。

有谁知道更好的解决方案?

0 个答案:

没有答案