[英]Get C#-Object-Array out of a JSON-String
So, this is my class: 所以,这是我的班级:
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; }
}
And this is how my JSON-String looks like: 这就是我的JSON-String的样子:
{"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"}]}
I would like to get a User[] users out of it. 我想让一个User []用户离开它。 My Problem is the {"results:":[....]}-Part.
我的问题是{“结果:”:[....]} - 部分。
I've tried it this way: 我试过这种方式:
JavaScriptSerializer js = new JavaScriptSerializer();
User[] user = js.Deserialize<User[]>(jsonString);
but I think the results-Part is messing everything up somehow. 但我认为结果 - 部分是以某种方式弄乱一切。 What would be the best way to solve this problem?
解决这个问题的最佳方法是什么?
Try defining a wrapping model that will reflect your JSON structure: 尝试定义一个反映您的JSON结构的包装模型:
public class MyModel
{
public User[] Results { get; set; }
}
Now you can go ahead and deserialize your JSON string back to this wrapping model: 现在,您可以继续将JSON字符串反序列化回此包装模型:
JavaScriptSerializer js = new JavaScriptSerializer();
MyModel model = js.Deserialize<MyModel>(jsonString);
and now there's nothing preventing you from getting your users collection back: 现在没有什么能阻止你收回你的用户集合了:
User[] user = model.Results;
You need another layer on your model 您的模型需要另一个图层
public class Data
{
public User[] results { get; set; }
}
Then deserialize the Data
class 然后反序列化
Data
类
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.