mit dem folgenden json:Deserialize Array von Schlüsselwertpaaren mittels Json.NET
[ {"id":"123", ... "data":[{"key1":"val1"}, {"key2":"val2"}], ...}, ... ]
, die Teil eines größeren Baum ist, wie kann ich deserialisiert "Daten" Eigenschaft in:
List<MyCustomClass> Data { get; set; }
oder
List<KeyValuePair> Data { get; set; }
oder
Dictionary<string, string> Data { get; set; }
mit Json.NET? Jede Version wird es tun (ich bevorzuge jedoch List of MyCustomClass). Ich habe bereits eine Klasse, die andere Eigenschaften enthält, wie folgt aus:
public class SomeData
{
[JsonProperty("_id")]
public string Id { get; set; }
...
public List<MyCustomClass> Data { get; set; }
}
wo „myCustomClass“ umfassen würde nur zwei Eigenschaften (Schlüssel und Wert). Ich habe bemerkt, dass es eine KeyValuePairConverter-Klasse gibt, die klingt, als würde sie tun, was ich brauche, aber ich konnte kein Beispiel finden, wie ich sie benutzen könnte. Vielen Dank.
Die Liste der Wörterbücher Werke; Dank dafür. Da die Änderung, die ich versuche zu machen, Teil einer größeren Bibliothek ist, versuche ich zu vermeiden, eine benutzerdefinierte Objektinitialisierung schreiben zu müssen. Ich bin dabei, einen benutzerdefinierten Konverter für meine Klasse zu schreiben (SomeData2 in Ihrem Beispiel). Wenn ich es nicht zum Laufen kriege, dann benutze ich Ihre List of Dictionary Methode. Vielen Dank. – pbz
Vielen Dank für diese Antwort. Ich hatte die gleiche Art von JSON mit Array mit Schlüsselwert. Ich habe nur öffentliche IEnumerable verwendet> Data {get; einstellen; } für dieses Feld und arbeitete wie Charme .. mein ganzer JSON wurde fein geparst! .. –
maths