解析 JSON 时将未定义的数据成员名称放入泛型 Diction<string, object>

Placing undefined data members names into generic Diction<string, object> when parsing JSON

我有这个 JSON(实际上是 Swagger):

{
  "swagger": "2.0",
  "info": {
    "version": "2.0",
    "name": "TheName",
    "description": "No description"
  }
  "somethingElse" : "xyz"
}

我正在使用 Newtonsoft.JSON。我定义了我的对象:

public class WebService
{
    public string swagger;
    public Dictionary<string, object> AllOthers;
}

如您所见,我没有将 "info" 或 "somethingElse" 对象定义为成员。相反,我希望将其放入通用的 AllOthers 字典

当我打电话时

var ws = Newtonsoft.Json.JsonConvert.DeserializeObject<WebService>(swaggerJSON);

ws 现在将正确包含 swagger 版本号字符串,但 AllOthers 将包含 null。我希望 AllOthers 包含完整的名称和描述,以及存储在通用对象中的有效负载。

这是如何实现的,还是不容易?

谢谢

这个 [JsonExtensionData] 有一个属性。用这个属性标记你的字典:

public class WebService
{
  public string swagger;
  [JsonExtensionData]
  public Dictionary<string, object> AllOthers;
}

var ws = Newtonsoft.Json.JsonConvert.DeserializeObject<WebService>(json);

希望对您有所帮助!干杯。