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

西安网站制作培训优化营商环境心得体会2023

西安网站制作培训,优化营商环境心得体会2023,杭州搜索引擎优化需求量,站长工具seo优化建议在开发中经常要使用到fastJson来转换对象为json 串,但是最近发现在一个对象转换的时候,总是丢失了一个字段的值,(数据丢失).就很纳闷。到网上找了很多方法总是不行,最后总算是在一篇博文中看到问题的关键&a…

在开发中经常要使用到fastJson来转换对象为json 串,但是最近发现在一个对象转换的时候,总是丢失了一个字段的值,(数据丢失).就很纳闷。到网上找了很多方法总是不行,最后总算是在一篇博文中看到问题的关键!现在整理如下,希望可以帮助到更多的人。

package per.eblink.pojo;public class Node {private String id;private String pId;private String name;private boolean open;private Node() {super();}public Node(String id, String pId, String name, boolean open) {super();this.id = id;this.pId = pId;this.name = name;this.open = open;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getpId() {return pId;}public void setpId(String pId) {this.pId = pId;}public String getName() {return name;}public void setName(String name) {this.name = name;}public boolean isOpen() {return open;}public void setOpen(boolean open) {this.open = open;}     
}

转换类:

<span style="font-size:14px;">package per.eblink.pojo;public class Node {private String id;private String pId;private String name;private boolean open;private Node() {super();}public Node(String id, String pId, String name, boolean open) {super();this.id = id;this.pId = pId;this.name = name;this.open = open;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getpId() {return pId;}public void setpId(String pId) {this.pId = pId;}public String getName() {return name;}public void setName(String name) {this.name = name;}public boolean isOpen() {return open;}public void setOpen(boolean open) {this.open = open;}     
}</span>


最后是控制台打印生成的结果如下:
FastJson生成字符串是:{"id":"2","name":"节点1","open":true}
Gson生成字符串是:{"id":"2","pId":"1","name":"节点1","open":true}



用FastJson就是少了个属性pId没有被转化出来,用Gson和其他的却可以,而我的Node对象只是个普通的JAVA类而已,麻烦你看一下,谢谢!


答案:1)你的get,set方法估计多半是自动生成的,Fastjson在生成的时候去判断pId有没有对应的get方法是区分了大小写的,所以找不到对应的get方法(getPId())。

2)如果页面上也需要使用node对象,就必须使用自动生成的get、set方法。与1)相互冲突,最根本的解决办法是,不适用第一个单词只有一个小写字母的属性名,换一个属性名字paId。


问题2:fastjson生成json时Null属性不显示

生成JSON代码片段

[java] 预览复制
  1. Map < String , Object > jsonMap = new HashMap< String , Object>();  
  2. jsonMap.put("a",1);  
  3. jsonMap.put("b","");  
  4. jsonMap.put("c",null);  
  5. jsonMap.put("d","wuzhuti.cn");  
  6.   
  7. String str = JSONObject.toJSONString(jsonMap);  
  8. System.out.println(str);  
  9. //输出结果:{"a":1,"b":"",d:"wuzhuti.cn"}  

从输出结果可以看出,null对应的key已经被过滤掉;这明显不是我们想要的结果,这时我们就需要用到fastjson的SerializerFeature序列化属性

也就是这个方法:JSONObject.toJSONString(Object object, SerializerFeature... features)

Fastjson的SerializerFeature序列化属性

--来自oschina bfleeee博客

QuoteFieldNames———-输出key时是否使用双引号,默认为true 
WriteMapNullValue——–是否输出值为null的字段,默认为false 
WriteNullNumberAsZero—-数值字段如果为null,输出为0,而非null 
WriteNullListAsEmpty—–List字段如果为null,输出为[],而非null 
WriteNullStringAsEmpty—字符类型字段如果为null,输出为”“,而非null 
WriteNullBooleanAsFalse–Boolean字段如果为null,输出为false,而非null

代码

[java] 预览复制
  1. Map < String , Object > jsonMap = new HashMap< String , Object>();  
  2. jsonMap.put("a",1);  
  3. jsonMap.put("b","");  
  4. jsonMap.put("c",null);  
  5. jsonMap.put("d","wuzhuti.cn");  
  6.   
  7. String str = JSONObject.toJSONString(jsonMap,SerializerFeature.WriteMapNullValue);  
  8. System.out.println(str);  
  9. //输出结果:{"a":1,"b":"","c":null,"d":"wuzhuti.cn"}  


参考文章:

1)fastjson生成json时Null属性不显示:http://www.oschina.net/question/818749_131396 

2)使用Fastjson生成Json字符串少字段属性:  http://www.oschina.net/question/818749_131396



http://www.lbrq.cn/news/2651563.html

相关文章:

  • 没有网怎么安装wordpressseo排名怎么优化软件
  • 河北邯郸seo网站建设网站优化常用的网络营销工具有哪些
  • 营销网站建设的规则个人怎么做网站
  • 网站建设pc移动appseo推广网址
  • 114黄页网推广冯耀宗seo教程
  • 河南 网站建设百度搜索风云榜小说
  • 四川建设厅网站 蒋app代理推广平台
  • 行业网站建设教程软文推广渠道主要有
  • 昆明网站建设一条龙服务交换友情链接的渠道有哪些
  • 三站合一网站建设有域名和服务器怎么建网站
  • wordpress建站教程阿里云seo薪资
  • 开家给别人做网站公司搜索引擎优化自然排名的优点
  • 自己如何做网站优化外贸网站建设设计方案
  • 深圳沙井公司网站建设sem和seo是什么意思
  • 做网站有必要注册商标吗今日国际新闻热点
  • 做网站送商标新闻稿营销
  • 青岛网站建设定制网络营销专业学什么
  • 廊坊做网站的电话宣传推广计划
  • 微信导航网站怎么做的优化网站怎么做
  • 数据库对于做网站的重要性如何免费创建自己的平台
  • nanopi neo做网站刷移动端seo软件
  • 找人做网站都需要提供什么品牌营销策略论文
  • 站长工具推荐谷歌google浏览器
  • 做网站建设怎么找客户乐云seo官网
  • 制作音乐的软件app如何优化百度seo排名
  • 西安网站建设公司云网网络销售管理条例
  • 服务器上的网站不能访问怎么让关键词快速排名首页
  • 政府网站建设分析企业优化推广
  • 易语言做网站登陆个人网站免费域名注册
  • 有哪些做文创产品的网站短链接生成网址
  • 机器学习(西瓜书)学习——绪论
  • 宝龙地产债务化解解决方案二:基于资产代币化与轻资产转型的战略重构
  • 操作系统-实验-进程
  • 学习嵌入式第二十二天
  • C语言memmove函数详解:安全高效的内存复制利器
  • AI领域的三箭齐发之夜 - genie3,gpt-oss, Opus 4.1