Json.NET 利用ContractResolver解决命名不一致问题

本文介绍了如何使用Json.NET的ContractResolver解决C#对象与JSON数据字段命名不一致的问题。当JSON字段以下划线命名,如'project_name',而C#中使用Camel-Case命名时,可以通过自定义ContractResolver实现属性映射。通过继承DefaultContractResolver并重写ResolvePropertyName方法,将Camel-Case属性名转换为下划线格式,然后在序列化和反序列化时应用这个自定义解析器。
摘要由CSDN通过智能技术生成

今天在遇到这么个问题,项目上有一部分功能需要访问web api, 这个api请求和相应的数据格式都是使用JSON,JSON中的field命名方式是以下划线分割的,比如"project_name", "account_id"等等。但是在C#中命名方式一般都为Camel-Case,这样如果使用Json.NET的默认设置序列化和反序列化对象的话就造成属性名不一致的情况。

这时,我们就可以通过Json.NET中的ContractResolver来实现实现属性的映射,比如将ProjectName映射为project_name:

public class UnderlineSplitContractResolver : DefaultContractResolver
{
    protected override string ResolvePropertyName(string propertyName)
    {
        return CamelCaseToUnderlineSplit(propertyName);
    }

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值