使用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"
//}