.Net Web Api返回Json数据中原对象变量名大小写问题

在使用SignalR的WebSocket进行数据实时传递时,发现后端.Net Web Api返回的Json对象变量名首字母默认大写,而前端期望的是驼峰命名法(首字母小写)。问题源于Web Api的默认Json序列化设置。解决方案包括:1) 在WebApiConfig中设置`CamelCasePropertyNamesContractResolver`;2) 在Global.asax中通过`JsonFormatter.SerializerSettings`设置自定义转换器;3) 使用`JsonProperty`属性逐一限制;或者在DTO继承场景下,利用JsonExtention类的ToJsonString方法转换对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这两天在工作中使用SignalR的WebSocket做数据实时传递的功能开发,在后端主动向前端广播数据以Json传递时,前端获取的Json中对应类的变量名首字母默认传递的是大写。而前端一直获取到的后台返回给Json中字段均为首字母小写的驼峰命名法。原因出在什么地方了呢?

调研了一番,发现我们一般Web Api 或者Web MVC中的Controler内的那些JsonResult、ActionResult、IHttpActionResult等返回给前端的数据,都是经过语法限定为采用“驼峰”命名法首字母小写的方式传递的。这里简述下三种方式:

1)在配置路由的WebApiConfig中添加如下属性:

// 对 JSON 数据使用混合大小写。驼峰式,但是是javascript 首字母小写形式. 

config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

// 对 JSON 数据使用混合大小写。跟属性名同样的大小输出 <Ps, 可选>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值