[英]How to deserialize JSON nested object array to c# object
I have been stumped with this and unable to proceed.我一直被这个难住,无法继续。 I am also not very experienced yet so your help would be appreciated.我也不是很有经验,所以你的帮助将不胜感激。 I am using an API that returns the following data:我正在使用返回以下数据的 API:
{"userdata":[{"IdCustomer":"4","IdShop_group":"1","IdShop":"2","IdGender":"1","IdDefault_group":"3","IdLang":"2","Company":null,"Firstname":"John","Lastname":"Doe","Email":"johndoe@email.com","NumpadPIN":"99999999","Birthday":"1991-12-24","Newsletter":"0","Optin":"0","Active":"1","Date_add":"2019-04-09 07:37:29","Date_upd":"2019-07-17 11:38:25"}]}
I have the following classes set up by using 'json2csharp'我使用“json2csharp”设置了以下类
public class Userdata
{
public string IdCustomer { get; set; }
public string IdShop_group { get; set; }
public string IdShop { get; set; }
public string IdGender { get; set; }
public string IdDefault_group { get; set; }
public string IdLang { get; set; }
public object Company { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
public string Email { get; set; }
public string NumpadPIN { get; set; }
public string Birthday { get; set; }
public string Newsletter { get; set; }
public string Optin { get; set; }
public string Active { get; set; }
public string Date_add { get; set; }
public string Date_upd { get; set; }
}
public class User
{
public IList<Userdata> userdata { get; set; }
}
And here's how I pull the data这是我提取数据的方式
//changed the url for this question
var URL = "https://dummyvalue.com";
var request = new HttpRequestMessage();
request.RequestUri = new Uri(URL);
request.Method = HttpMethod.Get;
request.Headers.Add("Accept", "application/json");
var client = new HttpClient();
HttpResponseMessage response = await client.SendAsync(request);
if (response.StatusCode == HttpStatusCode.OK)
{
ApiStatusLabel.Text = "200";
HttpContent content = response.Content;
var json = await content.ReadAsStringAsync();
// create new object
User userObject = JsonConvert.DeserializeObject<User>(json);
}
My question is on how do I assign/use the values I have deserialized?我的问题是如何分配/使用我反序列化的值? I would like to access the values as class object details ex.我想以类对象详细信息的形式访问这些值。
var name = userObject.Firstname;
var surname = userObject.Lastname;
I have read a lot and tried different ways but I must be missing something..我已经阅读了很多并尝试了不同的方法,但我一定错过了一些东西..
EDIT - fixed the class name from RootObject to User编辑- 将类名从 RootObject 修正为 User
You need to use RootObject您需要使用 RootObject
var response = JsonConvert.DeserializeObject<RootObject>(json);
foreach(var userObject in response.userdata)
{
//use here userObject.Firstname;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.