我有一個這樣的代碼:
Dictionary<string, Diskop> data = JsonConvert.DeserializeObject<Dictionary<string, Diskop>>(res.Body.ToString());
這是 Diskop 類:
internal class Diskop : Dictionary<string, Diskop>
{
public string isim { get; set; }
public int no { get; set; }
public int puan { get; set; }
}
我得到那個錯誤:
Newtonsoft.Json.JsonSerializationException: '無法將當前 JSON 陣列(例如 [1,2,3])反序列化為型別 'System.Collections.Generic.Dictionary`2[System.String,Turuncu_Uygulama.Diskop]' 因為該型別需要一個JSON 物件(例如 {"name":"value"})以正確反序列化。
這是json
[ {
"isim" : "AHMET UTKU G?KSAL", "no" : 929, "puan" : 96 }, { "isim" : "AHMET YAS?R YILDIZ", "no" : 969, "puan" : 95 }, { "isim " : "AK?F ENES ?ZDEMIR", "no" : 953, "puan" : 108 }, { "isim" : "AL? AKTüRK", "no" : 910, "puan" : 111 }
uj5u.com熱心網友回復:
Diskop 應如下所示:
internal class Diskop
{
[JsonProperty("isim")]
public string Isim { get; set; }
[JsonProperty("no")]
public int No { get; set; }
[JsonProperty("puan")]
public int Puan { get; set; }
}
Deser 可能看起來像:
var data = JsonConvert.DeserializeObject<Diskop[]>(res.Body.ToString());
或者像:
var data = JsonConvert.DeserializeObject<List<Diskop>>(res.Body.ToString());
因為你的 json 代表了一組 Diskops:
[
{ "isim" : "AHMET UTKU G?KSAL", "no" : 929, "puan" : 96 },
{ "isim" : "AHMET YAS?R YILDIZ", "no" : 969, "puan" : 95 },
{ "isim" : "AK?F ENES ?ZDEM?R", "no" : 953, "puan" : 108 },
{ "isim" : "AL? AKTüRK", "no" : 910, "puan" : 111 }
]
Dictionary<string, Diskop>如果它看起來像一個磁盤映射,你會使用 a :
{
"a": { "isim" : "AHMET UTKU G?KSAL", "no" : 929, "puan" : 96 },
"b": { "isim" : "AHMET YAS?R YILDIZ", "no" : 969, "puan" : 95 },
"c": { "isim" : "AK?F ENES ?ZDEM?R", "no" : 953, "puan" : 108 },
"d": { "isim" : "AL? AKTüRK", "no" : 910, "puan" : 111 }
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/364116.html
