Ich bekomme Folgendes aus Json Payload von einer REST-Anfrage.Wie deserialize Root-Objekt mit sinnlosen dynamischen Schlüsselnamen? Json.NET
{
"version": "1.1",
"date": "2017-01-06",
"count": "130",
"0": {
"artist": "Artist 1",
"title": "Title 1"
},
"1": {
"artist": "Artist 2",
"title": "Title 2"
},
...
"49": {
"artist": "Artist 50",
"title": "Title 50"
}
}
Wie Sie sehen können, gibt es mehrere numerische Wurzelelemente. Diese Elemente indizieren das Objekt in der Antwort, also brauche ich die Zahlen nicht selbst, ich brauche nur das Song
Objekt, das sie darstellen. Ich brauche auch count
, um zu wissen, ob ich einen Anruf beim Server machen muss, um die nächste Seite der Lieder zu erhalten (der Server gibt 50 Song
Objekte pro Anruf zurück).
Hier ist, was ich für Song
Klasse:
public class Song
{
public string artist {get; set;}
public string title {get; set;}
}
Aber ich habe Probleme das Wurzelelement zu bekommen. Ich habe versucht, den Prozess nachzuahmen, der verwendet wird, wenn ein dynamisches untergeordnetes Element vorhanden ist, aber das funktioniert nicht.
public class SongsResponse
{
public string version { get; set; }
public string date { get; set; }
public string count {get; set; }
public Dictionary<string, Song> songs { get; set; }
}
Ich habe Lösungen gesehen, die „Wegwerf“ version
, date
und count
und andere, die es ohne vordefinierte Klassen zu tun.
Aber ich brauche count
und idealerweise würde von vordefinierten Klassen arbeiten wollen.
Down Abstimmung ohne Kommentar ?? – dbJones
Refactoring eine Option? Warum musst du zählen? Wenn 'songs' 'ICollection' implementiert, wird es eine 'Count'-Eigenschaft haben. –
Server gibt nur 50 Antworten gleichzeitig zurück. Aber "count" sagt Ihnen, wie viele die Kriterien erfüllen. So könnte 'count'' 250' sein. Aktualisierte Frage, um das klarer zu machen. – dbJones