博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.Net Web Api返回Json数据中原对象变量名大小写问题
阅读量:5079 次
发布时间:2019-06-12

本文共 1371 字,大约阅读时间需要 4 分钟。

这两天在工作中使用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, 可选>

//config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new DefaultContractResolver();

 

2)在Global.asax文件的Application_Start或分装好的WebModeul中添加如下属性:

GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters属性来增加自定义json转换器.

不过补充下,到目前为止GlobalConfiguration类只能控制WebApi Controller中Action返回值的序列化机制,它不能控制WebApi Controller中Action参数的反序列化机制,更不能控制MVC Controller的Action序列化机制。

 

3)最后就是我们许多网友采用的附加JsonProperty属性来加以限制,如下图所示引用Newtonsoft.Json,给每个属性限制下就OK了。不过,如果遇到继承自实体的DTO,则可以选用JsonExtention类中的ToJsonString(true,true)方式转换对象。

using Newtonsoft.Json;/// ///商品类。    /// public class Product{   ///    /// 商品Id   ///   [JsonProperty("productId")]  public string ProductId { set; get; }   ///    /// 商品名称  ///   [JsonProperty("productName")]  public string ProductName { set; get; } } 以上就是最近填坑的历程。

转载于:https://www.cnblogs.com/Jashinck/p/9005740.html

你可能感兴趣的文章
JavaFX中ObservableValue类型
查看>>
杭电 1097 A hard puzzle
查看>>
[转载]INFORMIX锁机制及如何剖析其锁申辩(第二部门)
查看>>
Andriod-项目stymqjlb-学习笔记2-原型
查看>>
Web AppDomain
查看>>
JQuery创建规范插件
查看>>
AD 域服务简介(三)- Java 对 AD 域用户的增删改查操作
查看>>
Unity中Text渐变色,和Text间距
查看>>
三位我尊敬的老师
查看>>
【Learning】多项式的一些东西
查看>>
软件工程概论第一章--概述
查看>>
平衡二叉树的学习
查看>>
FPGA学习手记(四)ModelSim入门及Testbench编写——合理利用仿真才是王道
查看>>
傅立叶变换、拉普拉斯变换、Z变换的联系
查看>>
使嵌入式Qt支持中文字体变换的方法(makeqpf)
查看>>
练习命名空间
查看>>
SQL Server等待事件—RESOURCE_SEMAPHORE_QUERY_COMPILE
查看>>
Quartz2D简单绘制之官方范例
查看>>
Hibernate Validation,Spring mvc 数据验证框架注解
查看>>
BZOJ3262: 陌上花开
查看>>