J'ai la prochaine réponse du serveur -
{"response":[{"uid":174952xxxx,"first_name":"xxxx","last_name":"xxx"}]}
J'essaie de désérialiser cela de la manière suivante -
JsonConvert.DeserializeObject<T>(json);
Où T = Liste de VkUser, mais j'ai eu une erreur.
[JsonObject]
public class VkUser
{
[JsonProperty("uid")]
public string UserId { get; set; }
[JsonProperty("first_name")]
public string FirstName { get; set; }
[JsonProperty("last_name")]
public string LastName { get; set; }
}
J'ai toujours essayé
public class SomeDto // maybe Response as class name will fix it but I don't want such name
{
public List<VkUser> Users {get;set;}
}
Quelles options de désérialisation peuvent m'aider?
Utilisez SelectToken :
string s = "{\"response\":[{\"uid\":174952,\"first_name\":\"xxxx\",\"last_name\":\"xxx\"}]}";
var users = JObject.Parse(s).SelectToken("response").ToString();
var vkUsers = JsonConvert.DeserializeObject<List<VkUser>>(users);
comme l'a souligné Brian Rogers, vous pouvez utiliser ToObject
directement:
var vkUsers = JObject.Parse(s).SelectToken("response").ToObject<List<VkUser>>();