簡體   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