【发布时间】:2015-12-09 15:49:26
【问题描述】:
我对这个有点难过。我所做的一切检查都表明它是一个有效的 Json 数组,但 JsonConvert.Deserialize 说它是一个对象。有人能指出我做错了什么吗?
要复制的代码:
var data = "[{\"User\": {\"Identifier\": \"24233\",\"DisplayName\": \"Commerce Test Student\",\"EmailAddress\": \"email@email.ca\",\"OrgDefinedId\": \"UniqueId1\",\"ProfileBadgeUrl\": null,\"ProfileIdentifier\": \"zzz123\"},\"Role\": {\"Id\": 153,\"Code\": null,\"Name\": \"Commerce Student\"}}]";
var items = JsonConvert.DeserializeObject<List<T>>(data);
其中 T 是符合以下格式的对象:
public class OrgUnitUser
{
public User User { get; set; }
public RoleInfo Role { get; set; }
}
public class User
{
public string Identifier { get; set; }
public string DisplayName { get; set; }
public string EmailAddress { get; set; }
public string OrgDefinedId { get; set; }
public string ProfileBadgeUrl { get; set; }
public string ProfileIdentifier { get; set; }
}
public class RoleInfo
{
public int Id { get; set; }
public string Code { get; set; }
public string Name { get; set; }
}
导致错误
Newtonsoft.Json.JsonSerializationException:无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型“System.Collections.Generic.List`1[CoverPages.Models.D2L.OrgUnitUser]”,因为该类型需要一个 JSON 数组(例如 [1,2,3])才能正确反序列化。
感谢任何/所有帮助!
【问题讨论】:
-
尝试删除外部方括号
[和]。 -
删除括号会导致同样的错误。奇怪的是,如果我复制数据变量 Javascript 并对其进行 JSON.parse,它会成功创建一个 javascript 对象数组...
标签: c# json json.net json-deserialization