从JSON字符串中获取C#-对象数组
这是我的课:从JSON字符串中获取C#-对象数组,c#,arrays,json,object,C#,Arrays,Json,Object,这是我的课: public class User { public User() { } public string Username { get; set; } public string Password { get; set; } public string FirstName { get; set; } public string LastName { get; set; } } 这就是我的JSON字符串的样子: {"results":[{"
public class User
{
public User() { }
public string Username { get; set; }
public string Password { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
这就是我的JSON字符串的样子:
{"results":[{"FirstName":"firstname1","LastName":"lastname1","Password":"TestPassword","Username":"TestUser","createdAt":"2015-03-02T17:36:25.232Z","objectId":"a8bKXDg2Y2","updatedAt":"2015-03-02T20:35:48.755Z"},{"FirstName":"firstname2","LastName":"lastname2","Password":"TestPw","Username":"TestUser2","createdAt":"2015-03-02T20:35:26.604Z","objectId":"2XPIklE3uW","updatedAt":"2015-03-02T20:35:53.712Z"}]}
我想从中获取一个用户[]个用户。
我的问题是{“结果::[…]}-部分
我试过这样做:
JavaScriptSerializer js = new JavaScriptSerializer();
User[] user = js.Deserialize<User[]>(jsonString);
JavaScriptSerializer js=新的JavaScriptSerializer();
User[]User=js.Deserialize(jsonString);
但我认为结果部分不知怎么搞砸了一切。
解决此问题的最佳方法是什么?尝试定义一个反映JSON结构的包装模型:
public class MyModel
{
public User[] Results { get; set; }
}
现在,您可以继续将JSON字符串反序列化回此包装模型:
JavaScriptSerializer js = new JavaScriptSerializer();
MyModel model = js.Deserialize<MyModel>(jsonString);
您需要在模型上添加另一层
public class Data
{
public User[] results { get; set; }
}
然后反序列化
数据
类谢谢,这可能会奏效-但这是为每个类创建包装的好方法吗?当然,这是一个好方法。您必须完全匹配正在反序列化的JSON结构。否则,您如何期望JSON序列化程序自动知道您要实现的目标?它通过类型内省和属性匹配工作。因此,请确保在序列化/反序列化时具有正确的结构。非常感谢!帮了我很多忙。(我需要等待大约7分钟来接受这个答案,我会稍后再做)每当你有JSON时,我总是建议你去。它将生成需要反序列化到的类。
public class Data
{
public User[] results { get; set; }
}