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

2022-01-13 15:41:24 字數 823 閱讀 6979

最近在乙個webapi2專案中遇到了乙個問題:c#編碼規範中規定屬性的首字母是大寫的(大多數公司採用這種編碼風格),但是從其它系統中接收到的json物件的屬性卻是小寫的(大多數公司採用這種編碼風格),怎樣才能方便地完成轉換?

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

有沒有更加優雅的做法?

在webapi2,預設的json序列化元件是newtonsoft.json。怎樣才能讓newtonsoft.json在序列化的時候自動將大寫轉換成小寫,而在反序列化的時候自動轉換成大寫?查詢文件之後,發現使用jsonpropertyatrribute即可。要使用jsonpropertyatrribute,需要先引用命名空間newtonsoft.json。如下所示:

1

using

newtonsoft.json;23

///4

///商品類。

5///

6public

class

product713

1415

///16

///商品名稱

17///

18 [jsonproperty("

productname")]

19public

string productname

20 }

在**中,我們使用[jsonproperty("productid ")]來修飾productid屬性,productid為小寫,productid為大寫。在序列化和反序列的時候,newtonsoft.json會自動進行轉換。

C json序列化大小寫問題

問題 經常遇到在c 類中的屬性是大寫開頭,而在序列化後要求為小寫或者有連線符,如此就需要我們對序列化和反序列化進行設定。一 jsonproperty屬性解決public class userinfo jsonproperty username public string username 二 使用n...

jackson序列化字段字母大小寫

從springboot預設的jackson切換到fastjson 發現欄位xaxis 從xaxis 變成了xaxis 使用lombok getter註解實現get方法 發現該方法的get方法為getxaxis 根據jackson序列化規則會轉化為 xaxis fastjson 是根據欄位名直接返回的...

JSON的序列化和反序列化

今天看了好多關於解析json的例子,但是都不全,而且還要自己找dll,於是自己寫了乙個全的json解析類,供以後參考 下面給出乙個要解析的字串 str str 1 解析json的工具類如下 1 在專案中新增引用 newtonsoft.json.dll,見附件 using system using s...