Newtonsoft.Json 对象序列化并设置首字母小写的2种方法
使用 C# 依赖 Newtonsoft.Json 的 JsonConvert.SerializeObject
方法,将对象转换为 JSON 字符串,会按照对象的属性名称作为键输出,一般情况下属性名称是以大写字母开头,有时候需要字段按其他格式转换,如驼峰、下划线,或者其他自定义格式。下面介绍2种方法。假设有一个实体类 Person。定义如下。
class Person
{
public string UserName { get; set; }
public int Age { get; set; }
}
1. 使用 JsonSerializerSettings 设置
使用 CamelCasePropertyNamesContractResolver
设置驼峰命名样式,即第一个字母小写。
static void Main(string[] args)
{
Person person = new Person();
person.UserName = "名字";
person.Age = 20;
var serializerSettings = new JsonSerializerSettings();
serializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
var json = JsonConvert.SerializeObject(person, serializerSettings);
Console.WriteLine(json);
}
以上将输出:
{"userName":"名字","age":20}
2. 使用 JsonProperty
修改 Person 类,添加 JsonProperty,可以指定任何格式的输出,这种控制方式高度自由。
class Person
{
[JsonProperty("user_name")]
public string UserName { get; set; }
[JsonProperty("age")]
public int Age { get; set; }
}
然后直接序列化即可。
static void Main(string[] args)
{
Person person = new Person();
person.UserName = "名字";
person.Age = 20;
var json = JsonConvert.SerializeObject(person);
Console.WriteLine(json);
}
以上将输出:
{"user_name":"名字","age":20}