Ci sono diversi modi che si possono estrarre i coppie chiave/valore per la costruzione di un dizionario:
var dict = "[{\"key\":\"60236\",\"value\":\"1\"},
{\"key\":\"60235\",\"value\":\"gdsfgdfsg\"},
{\"key\":\"60237\",\"value\":\"1\"}]";
Usa List<KeyValuePair<int, string>>
var dictionary = JsonConvert.DeserializeObject<List<KeyValuePair<int, string>>>(dict)
.ToDictionary(x => x.Key, y => y.Value);
Utilizzare un oggetto personalizzato che rappresenta le coppie e quindi creare un dizionario dalla tua collezione.
var output = JsonConvert.DeserializeObject<List<Temp>>(dict);
var dictionary = output.ToDictionary(x => x.Key, y => y.Value);
public class Temp
{
public int Key { get; set; }
public string Value { get; set; }
}
Infine, se sei a disagio con l'utilizzo di un oggetto "usa e getta" solo per la deserializzazione personalizzato, è possibile prendere un piccolo calo di prestazioni e uso dinamico, invece.
var dictionary = JsonConvert.DeserializeObject<List<dynamic>>(dict)
.ToDictionary (x => (int)x.key, y => (string)y.value);
fonte
2015-05-21 21:25:02
cambiare il in e vedere se questo risolve il problema. la chiave è definita tra due virgolette, che potrebbe essere il problema –
faljbour