C# json转换 ContractResolver 转换器将下划线转驼峰
使用Newtonsoft.Json库中的ContractResolver类可以方便地实现将下划线转换为驼峰的功能。
首先,需要定义一个自定义的ContractResolver类,重写其中的CreateProperty方法,将属性名中的下划线转换为驼峰。示例代码如下:
public class CamelCasePropertyNamesContractResolver : DefaultContractResolver
{
protected override JsonProperty CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
{
var property = base.CreateProperty(member, memberSerialization);
if (property.PropertyName.Contains("_"))
{
property.PropertyName = Regex.Replace(property.PropertyName, @"_\w", match => match.Value.Replace("_", "").ToUpper());
}
return property;
}
}
接下来,使用该转换器进行Json序列化和反序列化即可。示例代码如下:
// 将对象序列化为Json字符串
var options = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
var json = JsonConvert.SerializeObject(obj, options);
// 将Json字符串反序列化为对象
var obj = JsonConvert.DeserializeObject<T>(json, new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
});
其中,T为要反序列化的对象类型。注意,在反序列化时也需要指定使用相同的ContractResolver
原文地址: https://www.cveoy.top/t/topic/d9vQ 著作权归作者所有。请勿转载和采集!