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

活泼的网站网站空间托管合同 .doc

活泼的网站,网站空间托管合同 .doc,自助友链平台,大连旅顺樱花在开发的过程中#xff0c;经常会碰到和自己预期不一样的情况。有的时候自己去研究一下还是很有趣的。这两天在写java web的时候#xff0c;碰到了一个对象序列化的问题。问题重现public class AjaxJson {private boolean success;private String msg;private Object obj;pri…在开发的过程中经常会碰到和自己预期不一样的情况。有的时候自己去研究一下还是很有趣的。这两天在写java web的时候碰到了一个对象序列化的问题。问题重现public class AjaxJson {private boolean success;private String msg;private Object obj;private Map attributes;//getter and setterpublic String getJsonStr() {JSONObject obj new JSONObject();obj.put(success, this.isSuccess());obj.put(msg, this.getMsg());obj.put(obj, this.obj);obj.put(attributes, this.attributes);return obj.toJSONString();}}上面是一个接口类我们需要把这个类的对象序列化成json返回。那么在springmvc中一般是这样操作的。RequestMapping(params /get)ResponseBodypublic AjaxJson del(HttpServletRequest request) {AjaxJson json new AjaxJson();//省略业务操作return json;}默认的话返回ResponseBody对象会直接序列化成json。这个时候我们可以看一下返回的json。{success: true,Msg:1,obj:{...},attributes: null,jsonStr:{success: true,Msg:1,obj:{...},attributes: null,}}显然和我们预期想的不太一样多了一个jsonstr字段。这个时候我在想是不是springmvc的问题。结果仔细一想springnvc之所以可以直接将对象序列化成json其实是我们添加的配置文件在起作用真正参与序列化工作的是jackson这个库。于是我单独使用了jackson结果返回的json字符串和之前是相同的这下就可以肯定是jackson这个库本身的设计问题了。深入探讨带着这份好奇我把java中常用的json序列化的库都试了一下看看是否都是这样。主流的库有jackson、fastjson和gson。经过测试发现jackson和阿里的fastjson返回的json字符串都带有一个jsonstr字段唯独google的gson返回了我们预期的结果——只序列化对象的field。于是我找了下这几个库的序列化原理jackson和fastjson在序列化的时候先利用反射找到对象类的所有get方法接下来去get然后小写化作为json的每个key值而get方法的返回值作为value。接下来再反射field添加到json中。gson没有找到通俗的讲法不过感觉应该就和getter方法无关吧。所以可以看大我们的AjaxJson类中存在这样一个getJsonStr因此jsonStr就作为key序列化到json中了。当然在jackson中提供了相应的annotation可以把这类方法忽略掉。在方法前加上**JsonIgnore **即可。个人理解遇到问题的时候千万不要忽略一些简单的地方例如getter和setter方法。用getXXX的地方可以用fetch等替代。有时我们会在类中定义例如private int mAge的变量而getter的方法是getAge()。显然我们希望在序列化的时候得到的key为age而非mAge那么反射getter方法也就有它存在的意义了。参考文献
http://www.sadfv.cn/news/165043/

相关文章:

  • 百事企业的网站建设类型网站开发优秀论文
  • 网站建设用免费素材wordpress子站点打不开
  • 网站建设相关资料文件企业网站建设系统
  • 门户网站网站制作wordpress 信息查询插件
  • 网站主要盈利模式企业网站推广的方法有搜索引擎推广
  • 企业网站服务器跟域名都需要交钱吗动漫制作专业专升本大学
  • 郑州网站推广价格信息wordpress支付宝付费
  • 网站3网合一是怎么做的wordpress 主题哪个好
  • 沈阳市城市建设学院官方网站免费咨询妇科在线医生
  • 做效果图网站百度自媒体怎么注册
  • 唐山网站建设七彩科技wordpress 内容 只调图片大小
  • 最新网站建设网站建网站建设网站站网站
  • 网站音乐播放器插件只做公司网站方案
  • 做网站赚取广告费asp网站安装到空间
  • 网站模板为什么不好南京电商网站开发
  • 广州外贸型网站网络运营者不是指
  • 销售平台网站建设宁波seo首页优化平台
  • 做公众号封面的网站群辉 wordpress 外网
  • 云阳一平米网站建设企业为什么要建设自己的网站
  • jquery特效的网站科技岛
  • 山西云起时网站建设长沙网络营销公司哪家好
  • 茶叶电子商务网站建设的结论手机可播放的网站
  • 做网站都需要什么技术网站设计作业平台
  • 论坛网站推广方案网页设计怎么写
  • 玫瑰在线 网站建设内容桂林八里街论坛
  • 房地产网站的设计要求迁西住房和建设管理局网站
  • 高端网站开发价格wordpress单本小说主题
  • co域名网站照明做外贸的有那些网站
  • wordpress知名网站进贤南昌网站建设公司
  • 如何用vs做网站百度的合作网站有哪些