使用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

C# json转换 ContractResolver 转换器将下划线转驼峰

原文地址: https://www.cveoy.top/t/topic/d9vQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录