Deserialize array of key value pairs using Json.NET

前端 未结 4 1358
南笙
南笙 2020-12-03 13:51

Given the following json:

[ {\"id\":\"123\", ... \"data\":[{\"key1\":\"val1\"}, {\"key2\":\"val2\"}], ...}, ... ]

that is part of a bigger

4条回答
  •  甜味超标
    2020-12-03 14:17

    I ended up doing this:

    [JsonConverter(typeof(MyCustomClassConverter))]
    public class MyCustomClass
    {
      internal class MyCustomClassConverter : JsonConverter
      {
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
          throw new NotImplementedException();
        }
    
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
          JObject jObject = JObject.Load(reader);
    
          foreach (var prop in jObject)
          {
            return new MyCustomClass { Key = prop.Key, Value = prop.Value.ToString() };
          }
    
          return null;
        }
    
        public override bool CanConvert(Type objectType)
        {
          return typeof(MyCustomClass).IsAssignableFrom(objectType);
        }
      }
    
      public string Key { get; set; }
      public string Value { get; set; }
    }
    

提交回复
热议问题