10 Eylül 2017 Pazar

NewTonsoft JsonExtensionData Attribute

Örnek
Elimizde şöyle bir json olsun. Testname1,Testname3,Testname7 verilerini Dictionary içine toplamak isteyelim
[{
  "Projekt": "Bakker Bouw Service",
  "Ruimte": "Hoofdgebouw",
  "Apparaat": {
    "project": "Bosboom001",
    "versie": "812"
  },
  "Apparaat naam": "",
  "Status": "Goedgekeurd",
  "Testname1": "",
  "Testname3": "2000-01-04T10:37:00+01:00",
  "Testname7": "2001-01-03T00:00:00+01:00"
  }, 
  ...
]
Elimizde şöyle bir yapı olsun
public class KeuringRegel
{
  public string Projekt { get; set; }
  public string Ruimte { get; set; }
  public Apparaat Apparaat { get; set; }
  [JsonProperty(PropertyName = "Apparaat naam")]
  public string Apparaatnaam { get; set; }
  public string Status { get; set; }
  [JsonExtensionData()]
  public TestNames testNames { get; set; }
}

public class TestNames : Dictionary<string, object>
{
  public new void Add(string key, object value)
  {
    if (key.StartsWith("testname", StringComparison.OrdinalIgnoreCase))
    {
      base.Add(key, value);
    }
  }
}
Şöyle yaparız.
string fileContent = null;
using (var reader = new StreamReader(file.OpenReadStream()))
{
  fileContent = reader.ReadToEnd();
}
List<KeuringRegel> list = JsonConvert.DeserializeObject<List<KeuringRegel>>(fileContent);

Hiç yorum yok:

Yorum Gönder