Частичная десериализация объекта из JSON - PullRequest
0 голосов
/ 11 декабря 2019

У меня есть JSON, который выглядит примерно так:

{
  "definition": [
    {
      "inputs": [
        {
          "type": "xxx",
          "prop1": 0,
          "prop2": 1
        },
        {
          "type": "yyy",
          "a": 0,
          "b": 1
        }
      ]
    }
  ]
}

Моя модель выглядит так:

class Configuration {
  public Definition[] Definition {get; set;}
}

class Definition {
  public Input[] Inputs {get; set;}
}

class Input {
  [JsonConverter(typeof(ControlTypeConverter))]
  public InputType Type {get; set;}
  public IDictionary<string, object> Properties {get; set;}
}

Когда я десериализирую ввод, используя JsonConvert.DeserializeObject<Configuration>(input), где inputявляется вышеупомянутой строкой, я получаю то, что хочу, но свойство Properties всегда равно null.

То, что я хотел бы получить, - это то, что все несопоставленные свойства для объектов из input.definition[].inputs[] складываются вProperties свойство, как если бы я использовал .DeserializeObject<Dictionary<string, object>>.

Есть ли лучший способ, чем написать собственный конвертер для Input?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...