[英]deserializing JSON to .net object using NewtonSoft - array
[英]Deserializing JSON to .net Different Object using NewtonSoft
首先,我知道这个问题已被问过数百次,但我不知道我的问题是什么。
我正在尝试使用 NewtonSoft 将 json 字符串反序列化为自定义对象。
var client = new RestClient(URL);
var request = new RestRequest(Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddJsonBody(retEmployeeFilters);
var response = client.Execute(request);
//Console.WriteLine(response.Content);
return JsonConvert.DeserializeObject<RetrieveEmployeeResponse>(response.Content);
线
Console.WriteLine(response.Content);
返回这个json
{"response":[{"id":3,"name":"A","email":"sansdad32a.@ds.com","mobile_number":"41","address":"B","age":20,"role":"N","hiring_date":"2053-04-03","created_at":"2016-03-16 23:49:15","updated_at":"2016-03-16 23:49:15"},{"id":4,"name":"B","email":"sansda32d32a.@ds.com","mobile_number":"41321","address":"Q","age":20,"role":"C","hiring_date":"2053-04-03","created_at":"2016-03-16 23:49:24","updated_at":"2016-03-16 23:49:24"}]}
这是 RetrieveEmployeeResponse 类
class RetrieveEmployeeResponse
{
public List<Employee> response { get; set; }
public String success { get; set; }
}
员工班
class Employee
{
public int id {get;set;}
public String name {get;set;}
public String email {get;set;}
public String mobile_number {get;set;}
public int age {get;set;}
public String address {get;set;}
public String role {get;set;}
public String hiring_date {get;set;}
}
我做的一切都好吗?
调试这里返回的对象
return JsonConvert.DeserializeObject<RetrieveEmployeeResponse>(response.Content);
有响应 = null 和成功 = null
有什么帮助吗?
从评论中的讨论来看,下面的代码解决了这个问题,但最初的问题是什么,仍然不清楚。 如果清楚了,我会更新这个答案。
更改行return JsonConvert.DeserializeObject<RetrieveEmployeeResponse>(response.Content);
到下面,解决了返回对象中空属性的问题。
var tempStr = response.Content;
var temp = JsonConvert.DeserializeObject<RetrieveEmployeeResponse>(tempStr);
return temp;
您应该将收到的 json 响应反序列化为
string responseJson="{\"response\":[{\"id\":3,\"name\":\"A\",\"email\":\"sansdad32a.@ds.com\",\"mobile_number\":\"41\",\"address\":\"B\",\"age\":20,\"role\":\"N\",\"hiring_date\":\"2053-04-03\",\"created_at\":\"2016-03-16 23:49:15\",\"updated_at\":\"2016-03-16 23:49:15\"},{\"id\":4,\"name\":\"B\",\"email\":\"sansda32d32a.@ds.com\",\"mobile_number\":\"41321\",\"address\":\"Q\",\"age\":20,\"role\":\"C\",\"hiring_date\":\"2053-04-03\",\"created_at\":\"2016-03-16 23:49:24\",\"updated_at\":\"2016-03-16 23:49:24\"}]}\r\n";
return JsonConvert.DeserializeObject<RetrieveEmployeeResponse>(responseJson);
您的 json 没有任何成功字符串,这就是反序列化后它为空的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.