WinForms เกิดข้อผิดพลาดไม่สามารถ deserialize ปัจจุบัน LANGUAGE อาเรย์(e.g.[1,2,3])ในประเภท

0

คำถาม

ฉันมีรหัสแบบนี้:

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.Language.JsonSerializationException:'ไม่สามารถ deserialize ปัจจุบัน LANGUAGE อาเรย์(e.g.[1,2,3])ในประเภท'ระบบคลังภาพบนตำแหน่ง.ทั่วไป.พจนานุกรม`2[กระบบข้อความ,Turuncu_Uygulama.Diskop]'เพราะคนประเภทที่ต้องการ LANGUAGE วัตถุ(e.g.{"ชื่อ":"มีค่า"})เพื่อ deserialize อย่างถูกต้อง

นี่เป็น language

[ {

"isim":"AHMET UTKU GÖKSAL", "ไม่":929, "puan":96 },{ "isim":"AHMET YASIR YILDIZ", "ไม่":969, "puan":ข 95 หรอก },{ "isim":"AKIF ENES ÖZDEMIR", "ไม่":953, "puan":108 },{ "isim":"ลิ AKTÜRK", "ไม่":910, "puan":111 }

c# deserialization dictionary json
2021-11-23 19:02:19
1

คำตอบที่ดีที่สุด

0

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());

เพราะของคุณ language เป็นตัวแทนขอเป็นอาเรย์ของ 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> ถ้ามันดูเหมือนเป็นระบบแผนที่ของ diskops:

{ 
"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 }
}
2021-11-23 19:21:50

ขอบคุณสำหรับความสนใจของคุณ
Menque

แต่ DeserializeObject คือ deserializing เดียวที่{ชื่อ:ค่า}arrays. ดังนั้นที่"a"สามารถมีเพียงหนึ่งค่า. ยังไงฉัน deserialize งหลายค่า arrays@Caius Jard
Menque

ไม่แน่ใจว่าฉันเข้าใจคำถาม
Caius Jard

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่