首页 > 解决方案 > JSON.NET:如何从特定的 json 对象反序列化为具有不同名称的类

问题描述

这让我有点抓狂,因为我们没有时间要求 API 团队更改他们的响应对象名称。

我们有一个 json 结果,内容如下:

"seqRing": {
      "admStatus": "disabled",
      "status": null,
      "lines": null
    },

我需要将 json 反序列化映射到这个类:

public class SequentialRing
    {
        public string admStatus { get; set; }
        public string status { get; set; }
        public List<SeqLinesAttr> SeqLines { get; set; } = new List<SeqLinesAttr>();
    }

如果这是属性名称不同的情况,我可以简单地使用属性顶部的 JsonPropertyAttribute,但我需要为类提供类似的东西。

如果有什么我可以使用的?请。

谢谢!

标签: c#jsonjson.net

解决方案


您展示的 JSON 具有“seqRing”作为较大 JSON 对象的属性。为了反序列化,您可以创建一个包装类(或使用现有类),您可以在其中指定该类的 JSON 属性名称:

public class SequentialRingWrapper
{
    [JsonProperty("seqRing")]
    public SequentialRing SequentialRing { get; set; }
}

推荐阅读