序列化Json時遇到的大小寫問題及解決方法


  最近在一個webapi2項目中遇到了一個問題:C#編碼規范中規定屬性的首字母是大寫的(大多數公司采用這種編碼風格),但是從其它系統中接收到的json對象的屬性卻是小寫的(大多數公司采用這種編碼風格),怎樣才能方便地完成轉換?

  最粗暴的方法是定義一個所有屬性名為小寫的ViewModel類,然后再編寫相應的方法來完成大小寫屬性的轉換。

      有沒有更加優雅的做法?

  在webapi2,默認的json序列化組件是Newtonsoft.Json。怎樣才能讓Newtonsoft.Json在序列化的時候自動將大寫轉換成小寫,而在反序列化的時候自動轉換成大寫?查找文檔之后,發現使用JsonPropertyAtrribute即可。要使用JsonPropertyAtrribute,需要先引用命名空間Newtonsoft.Json。如下所示:

 1 using Newtonsoft.Json;
 2 
 3   /// <summary>
 4   ///商品類。    
 5   /// </summary>
 6     public class Product
 7     {
 8         /// <summary>
 9         /// 商品Id
10         /// </summary>
11         [JsonProperty("productId")]
12         public string ProductId { set; get; }
13 
14 
15         /// <summary>
16         /// 商品名稱
17         /// </summary>
18         [JsonProperty("productName")]
19         public string ProductName { set; get; }
20 }

 

在代碼中,我們使用[JsonProperty("productId ")]來修飾ProductId屬性,productId為小寫,ProductId為大寫。在序列化和反序列的時候,Newtonsoft.Json會自動進行轉換。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM