繁体   English   中英

将Json反序列化为对象

[英]Deserializing Json into objects

因此,我当前正在使用的应用程序将执行很多都返回json的请求,是否应该为每个将返回可转换为json的特定请求创建属性的类来创建类?该类的属性?

例如,假设我有两个请求,一个请求返回一个名字,一个姓氏和一个工作角色,另一个请求返回一个企业名称,营业地点和企业邮政编码,那么可以这样做:

class BusinessRetrieval {
  public string BusinessLocation{ get; set; }
  public string BusinessPostCode { get; set; }
}

class EmployeeRetrieval {
  public string Firstname { get; set; }
  public string Surname { get; set;}
  public string Postcode { get; set; }
}

因此,现在我有2个类概述了一旦提出请求将要发送回的属性,现在可以这样做了:

BusinessRetrieval business = (BusinessRetrieval)JsonConvert.DeserializeObject(businessResponse, typeof(BusinessRetrieval));
EmployeeRetrieval employee = (EmployeeRetrieval)JsonConvert.DeserializeObject(employeeResponse, typeof(EmployeeRetrieval));

我在这里问的是可以这样做吗? 我将要处理很多请求(10-15),我计划为每个请求创建一个类,概述每个响应将返回的属性,我觉得这将是构造请求的好方法。

这个可以吗?

是的,这是处理代码类型安全的唯一合理方法。 尽管您不能将非通用DeserializeObject的结果DeserializeObject转换为您选择的类型-它会引发Exception。 而是使用DeserializeObject的通用版本:

BusinessRetrieval business = JsonConvert.DeserializeObject<BusinessRetrieval>(businessResponse);
EmployeeRetrieval employee = JsonConvert.DeserializeObject<EmployeeRetrieval>(employeeResponse);

我认为这样做不仅可以,而且我认为这是最佳做法,因此您可以通过任何方法毫无问题地传递该对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM