ich bin wieder mal zu doof. Ich versuche, die REST-Daten des RKI mal selbst abzufragen und auszuwerten. Doch bereits beim Parsen des JSON scheitert das ganze. Vielleicht kann mich jemand in die passende Richtung schubsen ?
Folgende URL wird abgefragt: https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_COVID19/FeatureServer/0/query?where=1%3D1&outFields=*&outSR=4326&f=json
Das ganze mache ich mit folgenden paar Zeilen:
async static void Search()
{
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Add("ContentType", "application/json");
string uri = "https://services7.arcgis.com/mOBPykOjAyBO2ZKk/arcgis/rest/services/RKI_COVID19/FeatureServer/0/query?where=1%3D1&outFields=*&outSR=4326&f=json";
HttpResponseMessage responseMessage = await client.GetAsync(uri);
string contentString = await responseMessage.Content.ReadAsStringAsync();
dynamic jsonText = JsonConvert.DeserializeObject(contentString); //Das hier funktioniert
var data = JsonConvert.DeserializeObject<attributes>(contentString); //Hier kommt nix
Console.WriteLine(jsonText);
}
Ich habe herausgefunden, das man die passenden Klassen selbst erst bauen muss (ich dachte, das ginge auch irgendwie "von selbst"), was ich in dieser Form gemacht habe:
class attributes
{
public int IdBundesland { get; set; }
public string Bundesland { get; set; }
public string Landkreis { get; set; }
public string Altersgruppe { get; set; }
public string Geschlecht { get; set; }
public int AnzahlFall { get; set; }
public int AnzahlTodesfall { get; set; }
public int ObjectId { get; set; }
public DateTime Meldedatum { get; set; }
public string IdLandkreis { get; set; }
public string Datenstand { get; set; }
public int NeuerFall { get; set; }
public int NeuerTodesfall { get; set; }
public DateTime Refadtum { get; set; }
public int NeuGenesen { get; set; }
public int AnzahlGenesen { get; set; }
public int IstErkrankungsbeginn { get; set; }
public string Altersgruppe2 { get; set; }
}
class features
{
public int ObjectId { get; set; }
public attributes[] attributes { get; set; }
}
wobei ich auf die features-Klasse erst kam, als mir klar wurde, das das ein Array aus attributes ist... Oder sowas. Ich habe da überhaupt keinen Durchblick und bisherige Googelei ergibt zwar tonneweise Code, wie man es macht - aber nur mit händischem JSON-String und einer Klasse mit zwei Membern... Also nicht sehr informativ.
Was mache ich da falsch ?