Hier ist mein Code, der eine Json zu einer Klasse von meinem eigenen konvertiert:Generic Array-Konstruktor
JSONArray boats = p["data"]["game"]["start"]["boats"].AsArray;
j.data.game.start.boats = new JsonGameDetailBoat[boats.Count];
for (int i = 0; i < boats.Count; i++) {
JSONNode boat = boats[i];
j.data.game.start.boats[i] = new JsonGameDetailBoat {
name = boat["name"],
total = boat["total"]
};
}
JSONArray board = p["data"]["game"]["board"].AsArray;
j.data.game.board = new JsonGameDataCell[board.Count][];
for (int i = 0; i < board.Count; i++) {
/* almost same code than previous loop */
}
die letzten Zeilen sehen: Ich habe eine andere Schleife zu machen, die gleiche Sache zu machen.
Und ich muss das noch 4 mal machen.
Also ich versuche, eine generische, die ein JSONArray in eine benutzerdefinierte Klasse konvertieren würde, und holen Sie jede Eigenschaften von als Zeichenfolge und lesen Sie sie aus dem JSON-Array.
Mein Code sieht so aus, aber es funktioniert nicht, und ich weiß nicht, ob es möglich ist, die öffentlichen Eigenschaften einer Klasse aufzuzählen.
public class JSONArrayConverter<T>
{
public JSONArrayConverter(JSONNode p)
{
JSONArray tab = p.AsArray;
IList<T> result;
for (int i = 0; i < tab.Count; i++) {
JSONNode value = tab[i];
result[i] = new <T>();
}
}
}
Dieser Code funktioniert nicht, ich bin hier fest: result[i] = new <T>();
Zwei Dinge des Rückrufs. 1) 'neue Liste()' und 2) müssen Sie angeben, T ' –
Draco18s
Drei Dinge: 3)' Ergebnis' ist die Liste, müssen Sie 'Ergebnis' auf die Liste, nicht ein Element der Liste. – Draco18s