C# 无法反序列化当前JSON数组
我从linq执行一个查询,该查询提供列列表 问题是:C# 无法反序列化当前JSON数组,c#,json,linq,serialization,json.net,C#,Json,Linq,Serialization,Json.net,我从linq执行一个查询,该查询提供列列表 问题是: var userList = context.Users.Where(x => x.UserFirstName.Contains(value.ToString()) && x.UserAccessLevel == (int)AuthUser.AuthUserUserType.Manager) .Select(x =>new UserGridDetails(){ Use
var userList = context.Users.Where(x => x.UserFirstName.Contains(value.ToString()) && x.UserAccessLevel == (int)AuthUser.AuthUserUserType.Manager)
.Select(x =>new UserGridDetails(){ UserFirstName = x.UserFirstName, UserLastName = x.UserLastName, UserEmailAddress = x.UserEmailAddress})
.ToList();
output = JsonConvert.SerializeObject(userList);
下面是来自查询的JSON数据
[{"UserFirstName":"Manager3","UserLastName":"ManagerLastName","UserEmailAddress":"manager3@test.com"}]
我试图将这些数据反序列化为一个C#class对象,该对象具有以下类
public class UserJsonWrapper
{
public List<UserGridDetails> UserGridDetailses { get; set; }
}
public class UserGridDetails
{
public string UserFirstName { get; set; }
public string UserLastName { get; set; }
public string UserEmailAddress { get; set; }
}
public类UserJsonWrapper
{
公共列表UserGridDetails{get;set;}
}
公共类UserGridDetails
{
公共字符串UserFirstName{get;set;}
公共字符串UserLastName{get;set;}
公共字符串UserEmailAddress{get;set;}
}
下面是反序列化代码
UserJsonWrapper jsonToDataTable = JsonConvert.DeserializeObject<UserJsonWrapper>(value);
UserJsonWrapper-jsonToDataTable=JsonConvert.DeserializeObject(值);
去掉包装器。您得到的是一个数组,而不是一个包含数组作为属性的对象
var jsonToDataTable = JsonConvert.DeserializeObject<List<UserGridDetails>>(value);
var jsonToDataTable=JsonConvert.DeserializeObject(值);
去掉包装器。您得到的是一个数组,而不是一个包含数组作为属性的对象
var jsonToDataTable = JsonConvert.DeserializeObject<List<UserGridDetails>>(value);
var jsonToDataTable=JsonConvert.DeserializeObject(值);
不应该是列表吗?由于UserGridDetails类型的列表和结果列表属于该类型?@SyedAbbasZakirHussain是的,对不起,应该是。我会把它修好的不是吗?由于UserGridDetails类型的列表和结果列表属于该类型?@SyedAbbasZakirHussain是的,对不起,应该是。我会解决的这一切都是通过一种方法实现的吗?那么,您是在序列化数据并随后对其进行反序列化吗?这一切都发生在一个方法中吗?那么,您是在序列化数据并随后反序列化它吗?