Ich möchte ein zweidimensionales Array zu einer Sammlung von .net-Objekten deserialisieren. Der Grund dafür ist, dass die Array-Syntax für meinen Benutzer einfacher ist, in einer Eingabedatei zu arbeiten. Daher möchte ich die Indizes der Arrays nur bestimmten Eigenschaften meines Zieltyps zuordnen.JSON-Deserialisierung - Array-Indizes zu Eigenschaften mit JSON.NET zuordnen
E.G. Mit:
[
["John", "Smith", "23"],
["Paula", "Martin", "54]
]
würde ich zwei Instanzen einer Person erhalten:
public class Person {
public string First {get;set;}
public string Last {get;set;}
public string Age {get;set;}
}
wobei der Index 0 einen inneren Array abbildet First
, Index 1 Karten Last
und Index 2 Karten zu Age
;
Gibt es eine Möglichkeit, Json.NET zu erweitern, so dass ich die Zuordnung während der Deserialisierung durchführen kann, so dass die Implementierungsdetails verborgen sind? Ich habe mit einer benutzerdefinierten JsonConverter
gespielt, aber ich habe nicht viel Information darüber gefunden, wie man es benutzt.
Edit: Insbesondere, ich bin nicht sicher, ob JsonConverter
das Richtige ist, zu verwenden, und ich habe Probleme, herauszufinden, wie CanConvert
zu implementieren und wie die Parameter der ReadJson
Methode übergeben können.
Sieht aus wie etwas, Ich würde versuchen zu tun - aber ich würde vorschlagen, dass am Ende Sie nur mit Standard-Json verwenden. Die Feldnamen müssen für jede 'Person' wiederholt werden, aber es ist ein kleiner Preis. – Patrick