欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用Newtonsoft序列化

程序员文章站 2022-03-15 19:28:01
Newtonsoft是我们开发过程中经常用到的一个第三方类库,主要用于对象的序列化和反序列化。 命名方式 默认情况下序列化后的json字符串会以类名、属性名作为键来命名。问题在于C#的命名规范中类名、属性名都是以PascalCase方式来命名的,而在前端中一般都是以CamelCase方式来命名的,所 ......

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