使用Newtonsoft序列化
Newtonsoft是我们开发过程中经常用到的一个第三方类库,主要用于对象的序列化和反序列化。
命名方式
默认情况下序列化后的json字符串会以类名、属性名作为键来命名。问题在于C#的命名规范中类名、属性名都是以PascalCase方式来命名的,而在前端中一般都是以CamelCase方式来命名的,所以我们可以通过Newtonsoft提供的一些方法来满足我们所需的效果,直接看示例:
public class Book { public string BookName { get; set; } public decimal BookPrice { get; set; } public string AuthorName { get; set; } public int AuthorAge { get; set; } public string AuthorCountry { get; set; } }
Book book = new Book { BookName = "The Gathering Storm", BookPrice = 16.19m, AuthorName = "Brandon Sanderson", AuthorAge = 34, AuthorCountry = "United States of America" }; string json1 = JsonConvert.SerializeObject(book, new JsonSerializerSettings { ContractResolver = new DefaultContractResolver() }); //首字母大写,PascalCase方式 //{ // "BookName": "The Gathering Storm", // "BookPrice": 16.19, // "AuthorName": "Brandon Sanderson", // "AuthorAge": 34, // "AuthorCountry": "United States of America" //} string json2 = JsonConvert.SerializeObject(book, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); //首字母小写,CamelCase方式 //{ // "bookName": "The Gathering Storm", // "bookPrice": 16.19, // "authorName": "Brandon Sanderson", // "authorAge": 34, // "authorCountry": "United States of America" //}