当前位置: 首页 > news >正文

手机网站打开自动wap质量好网站建设费用

手机网站打开自动wap,质量好网站建设费用,贸易公司logo图片,wordpress问答模板问题背景#xff1a; 今天在做项目联调时调用别人的第三方接口时#xff0c;发现字段传递不对导致参数传递异常的问题#xff0c;当时还很奇怪#xff0c;明白传好着呢#xff0c;怎么就好端端的出现字段不对的情况呢#xff1f; 查看发现该字段为boolean类型的isIsRef…问题背景 今天在做项目联调时调用别人的第三方接口时发现字段传递不对导致参数传递异常的问题当时还很奇怪明白传好着呢怎么就好端端的出现字段不对的情况呢 查看发现该字段为boolean类型的isIsRefresh但传给第三方json串里字段变为了isRefresh发现类中定义的字段确实为isIsRefresh与设计文档上相同并非定义错误。因此猜测是在服务传递时导致is丢失。(此处对于这个字段属性名称请大家不要喷第三方叫这个非常想改无奈别人的代码没法动叫的的确不咋样本文重点说一下为什么会出这个问题这个问题应该如何解决、处理请各位大佬不要追究属性名哦也正是因为这个不规范命名才导致了此次联调失败)。 这个是我传的值 这个是对方接口接收到的值命名凑合看 这个是我的实体Bean 明显是有区别的两个is变成了一个is导致对方接口参数校验失败除了命名之外看着是没有问题的但就是传值不对 原因分析 JavaBean类的属性的类型是boolean类型那么该属性的读方法的格式可以是isXxx()或者getXxx()例如名为state的boolean类型的属性它的读方法可以是isState()或者是getState()。 【强制】POJO 类中的任何布尔类型的变量都不要加 is 前缀否则部分框架解析会引起序列化错误。 反例定义为基本数据类型 Boolean isDeleted 的属性它的方法也是 isDeleted()框架在反向解析的时候“误以为”对应的属性名称是 deleted导致属性获取不到进而抛出异常。 问题验证 定义一个实体类BeanTest含有boolean的属性isSuccess 和 String类型的属性name使用Lombok框架来生成getter、setter和constructor。测试方法分别使用Gson、Fastjson和Jackson来进行序列化测试结果如下。 Data class BeanTest {private String name;private boolean isSuccess;private boolean isFlag;public BeanTest(String name, boolean isSuccess, boolean isFlag) {this.name name;this.isSuccess isSuccess;this.isFlag isFlag;}public BeanTest() {}public static void main(String[] args) throws JsonProcessingException {BeanTest bean new BeanTest(allen,true,false);//GsonString gsonString new Gson().toJson(bean);System.out.println(Gson: gsonString);//fastjsonString fastJsonString JSON.toJSONString(bean);System.out.println(Fastjson: fastJsonString);//JacksonString jacksonString new ObjectMapper().writeValueAsString(bean);System.out.println(Jackson: jacksonString);} } 执行结果 Gson: {name:allen,isSuccess:true,isFlag:false} Fastjson: {flag:false,name:allen,success:true} Jackson: {name:allen,success:true,flag:false} 可以看出使用Gson序列化后的json串没有出现is丢失的问题而jackson和fastjson均出现了is丢失的问题Gson是根据类中属性进行序列化所以结果没什么问题。而Jackson和FastJson的序列化方式是先找到getter方法再根据JavaBean规范生成对应的属性名所以不仅isBooTest属性被序列化成booTest且testAtt这个类中根本不存在的属性也在序列化的结果中。 解决方案 经过测试发现对于jackson和fastjson会出现一下几种情况而gson在这些情景下都可以正确的序列化 。 1.is开头的非boolean类型字段使用getIsXXX方法序列化后字段名不变 2.is开头的非boolean类型字段使用isXXX方法序列化之后消失 3.is开头的boolean类型字段使用getIsXXX方法序列化之后字段名不变 4.is开头的boolean类型字段使用isXXX方法序列化之后字段名前的is被去除 若要避免该问题有以下几种方法 方法1bean的boolean属性设置时不要以is作为小驼峰 方法2不要使用Data生成getter应该使用快捷键生成然后手动修改成getIsXxx()的形式 方法3使用Gson序列化对象 方法4bean的布尔类型属性设置为包装类型Boolean而不要使用boolean。使用Boolean时Data生成的getter和setter为getIsXxx(), setIsXxx()。 对于这个问题我还是要说一句既然有规范请严格按照规范起这种命名害人害己请大家谨记以下是阿里开发规范仅供参考 注释RPCRemote Procedure Call远程过程调用是一个计算机通信协议。 RPC 是一种基于 TCP 传输层或者 HTTP2 应用层的通信协议HTTP 只基于 HTTP 协议包括 HTTP1.x即 HTTP1.0、1.1 和 HTTP2目前很多浏览器默认使用 1.x 来访问服务器数据。 当然你要是实在迫不得已没办法了这么做也是可以改成的但并不建议  https://blog.csdn.net/yangf257/article/details/131209619
http://www.pierceye.com/news/465871/

相关文章:

  • 企业网站搭建项目概述范文wordpress更改链接地址
  • 免费网站在线观看人数在哪直播建设工业网站首页
  • 权威的南昌网站设计wordpress游客评论游客
  • 乡镇府建设网站什么是外链
  • 营销型网站设计流程电子商务网站建设软件
  • 做个人网站的步骤wordpress 添加新页面
  • 公司建网站流程网站布局选择
  • 云南效果好的网站优化微信如何做有趣的短视频网站
  • wordpress个人网站后台登陆dedecms仿站
  • 网站没被收录什么原因上海哪家做网站
  • 电子商务网站建设含代码项目外包是什么意思
  • 此网站正在建设中页面重庆网上商城网站建设公司
  • 保定建设公司网站新产品上市的营销策划方案
  • 网站建设课程报告论文网络设计专业有前途吗
  • 苏州哪个公司做门户网站wordpress显示评论者地理位置 浏览器
  • 福州网站设计十年乐云seo推广网上国网有什么好处
  • 豪华网站建设wordpress推广提成
  • 网站优化外包价格搜索引擎费用
  • 网站建设基本范例sqlite开发网站
  • 网站建设顾问站建开发外包公司
  • 建立网站花钱吗wordpress表结构写入不全
  • 绿色家园网站怎么做导出wordpress文章
  • 合肥有什么好的网站建设公司网站建设的售后服务流程
  • 做网站烧钱吗济南免费建站
  • ps个人主页网页设计模板汕头关键词优化服务
  • 网站建设功能图网站开发新技术探索
  • 做自行车网站应该注意什么个人介绍网页设计模板
  • 邢台网站建设免费做网站排名上海开发app
  • 沈阳网站建设设计企业网站设计与管理系统
  • 婚纱照网站制作梁山网站建设价格