คุณสมบัติไดนามิก json deserialize
Aug 20 2020
ฉันมีปัญหาในการหาวิธี deserialize json ซึ่งมีคุณสมบัติแบบไดนามิก (เช่น - UserRequest :: 567)ชื่อคุณสมบัติอาจเป็นค่าใดก็ได้และวัตถุ UserRequest มีคุณสมบัติ json อื่น ๆ ที่ฉันสนใจ
ฉันเหนื่อยกับการเขียนชั้นเรียนและไม่รู้จะทำอย่างไรกับทรัพย์สินนั้น แนวทางปฏิบัติที่ดีที่สุดในการรับมือกับปัญหาเช่นนี้คืออะไร?
{
"objects": {
"UserRequest::567": {
"code": 0,
"message": "created",
"class": "UserRequest",
"key": "567",
"fields": {
"ref": "R-000567",
"org_id": "4"
}
}
}
}

คำถามคือแนวทางปฏิบัติที่ดีที่สุดในการอ่านสตริง json ประเภทนี้คืออะไร?
ขอบคุณ
คำตอบ
1 janzen Aug 20 2020 at 23:23
ในการDeserialize
ใช้งานนี้Newtonsoft.Json
นี่คือคลาส:
public class CreateRequest
{
public long code { get;set; }
public string message { get; set; }
[JsonProperty("class")]
public string class1 { get; set; }
public string key { get; set; }
public Fields fields { get; set; }
}
public class Fields
{
[JsonProperty("ref")]
public string refe { get; set; }
public string org_id { get; set; }
}
public class Root
{
public Dictionary<string, CreateRequest> objects { get; set; }
//The 'string' key in the dictionary is the 'UserRequest::567'
}
จากนั้นจะDeserialize
ใช้:
var x = Newtonsoft.Json.JsonConvert.DeserializeObject<Root>(jsonObject).objects.Values;