Data la seguente json:Deserialize matrice di coppie di valori chiave utilizzando Json.NET
[ {"id":"123", ... "data":[{"key1":"val1"}, {"key2":"val2"}], ...}, ... ]
che fa parte di un albero grande, come posso deserializzare i "dati" in proprietà:
List<MyCustomClass> Data { get; set; }
o
List<KeyValuePair> Data { get; set; }
o
Dictionary<string, string> Data { get; set; }
utilizzando Json.NET? Entrambe le versioni funzioneranno (preferisco l'elenco di MyCustomClass). Ho già una classe che contiene altre proprietà, come questo:
public class SomeData
{
[JsonProperty("_id")]
public string Id { get; set; }
...
public List<MyCustomClass> Data { get; set; }
}
dove "myCustomClass" dovrebbe includere solo due proprietà (Chiave e Valore). Ho notato che esiste una classe KeyValuePairConverter che sembra farebbe ciò di cui ho bisogno, ma non sono riuscito a trovare un esempio su come usarlo. Grazie.
La lista di dizionari opere; grazie per quello Dato che il cambiamento che sto cercando di fare è parte di una libreria più grande, sto cercando di evitare di dover scrivere l'inizializzazione dell'oggetto personalizzato. Sto cercando di scrivere un convertitore personalizzato per la mia classe (SomeData2 nel tuo esempio). Se non riesco a farlo funzionare, userò il tuo metodo List of Dictionary. Grazie. – pbz
Grazie mille per questa risposta. Stavo avendo lo stesso tipo di JSON con array con valore chiave. Ho appena usato public IEnumerable> Data {get; impostato; } per quel campo e ha funzionato come charme .. tutto il mio json è stato analizzato bene! .. –
maths