【发布时间】:2014-01-24 01:52:24
【问题描述】:
我有来自服务器的下一个响应 -
{"response":[{"uid":174952xxxx,"first_name":"xxxx","last_name":"xxx"}]}
我正在尝试以另一种方式反序列化 -
JsonConvert.DeserializeObject<T>(json);
其中 T = VkUser 列表,但出现错误。
[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; }
}
我一直在尝试
public class SomeDto // maybe Response as class name will fix it but I don't want such name
{
public List<VkUser> Users {get;set;}
}
哪些反序列化选项可以帮助我?
【问题讨论】:
-
无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型 'System.Collections.Generic.List`1[Oauth.Vk.Dto.VkUserApi.VkUser]'因为该类型需要一个 JSON 数组(例如 [1,2,3])才能正确反序列化。要修复此错误,要么将 JSON 更改为 JSON 数组(例如 [1,2,3]),要么将反序列化类型更改为普通的 .NET 类型(例如,不是像整数这样的原始类型,而不是像这样的集合类型可以从 JSON 对象反序列化的数组或 List
)。 JsonObjectAttribute 也可以添加到类型中以强制它从 JSON 对象反序列化。
标签: c# json json.net deserialization