Désérialisation de la propriété JSON dynamique
Aug 20 2020
J'ai des difficultés à comprendre comment désérialiser un json, qui a une propriété dynamique (par exemple - UserRequest :: 567), le nom de la propriété peut être n'importe quelle valeur et l'objet UserRequest contient d'autres propriétés json qui m'intéressent
Je suis fatigué d'écrire un cours et je ne sais pas quoi faire de cette propriété. Quelles sont les meilleures pratiques pour faire face à un problème comme celui-ci?
{
"objects": {
"UserRequest::567": {
"code": 0,
"message": "created",
"class": "UserRequest",
"key": "567",
"fields": {
"ref": "R-000567",
"org_id": "4"
}
}
}
}
La question est de savoir quelles sont les meilleures pratiques pour lire ce type de chaîne json?
Merci
Réponses
1 janzen Aug 20 2020 at 23:23
Pour Deserializecette utilisation Newtonsoft.Json, voici les classes:
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'
}
Puis Deserializeutiliser:
var x = Newtonsoft.Json.JsonConvert.DeserializeObject<Root>(jsonObject).objects.Values;