解决JSONObject.toJSONString()输出null的问题
目录
- JSONObject.toJSONString()输出null
- 代码
- 输出
- 看下SerializerFeature属性
- 不要盲目的使用JSONObject.toJSONString
JSONObject.toJSONString()输出null
问题:fastjson的api种,jsonObject.toJsonString(),当值为null时,没打印出来
代码
JSONObject jsonObject = new JSONObject(); jsonObject.put("id",null); jsonObject.put("class","12"); jsonObject.put("name",""); // 使用默认序列化方式打印 System.out.println(jsonObject.toJSONString()); // 使用指定序列化方式 System.out.println(jsonObject.toJSONString(jsonObject,SerializerFeature.WriteMapNullValue));
输出
{"name":"","class":"12"}
{"id":null,"name":"","class":"12"}
可以发现,使用默认方式时,id没有打印null,指定序列化SerializerFeature.WriteMapNullValue,会打印null
可以看到
看下SerializerFeature属性
名称 | 含义 |
---|---|
QuoteFieldNames | 输出key时是否使用双引号,默认为true |
UseSingleQuotes | 使用单引号而不是双引号,默认为false |
WriteMapNullValue | 是否输出值为null的字段,默认为false |
WriteEnumUsingToString | Enum输出name()或者original,默认为false |
SortField | 按字段名称排序后输出。默认为false |
WriteTabAsSpecial | 把\t做转义输出,默认为false |
PrettyForma | 结果是否格式化,默认为false |
WriteClassName | 序列化时写入类型信息,默认为false。反序列化是需用到 |
不要盲目的使用JSONObject.toJSONString
JSONObject.toJSONString会默认执行你这个要解析的类中的所有get方法,很容易出现空指针异常,而应该换为gson.toJson()这个方法
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
JSONObject toJSONString错误的解决
目录 JSONObject toJSONString错误 1.com.alibaba.fastjson.JSONObject 继承了JSON 2.在使用时需要注意的地方 3.默认过滤掉值为null的key JSONUtils.toJSONString的一个坑 不需要判断使用StringUtils.isBlank进行判断 JSONObject toJSONString错误 1.com.alibaba.fastjson.JSONObject 继承了JSON 可以使用其2个重要的方法: Model m
-
解决JSON.toJSONString首字母大小写的问题
目录 JSON.toJSONString首字母大小写 问题场景 如何解决 JSONObject.toJSONString把属性的大小写改变了 JSON.toJSONString首字母大小写 问题场景 最近在做医院项目,医院方面his部分的入参出参由mirth去封装了,写了一版接口文档给了我. 我一看就有点闹心,首字母全是大写.和我上一家待过的项目里的类名字段名全是大写的闹心程度差不多… 因为我需要用http请求去调他的接口,传参只能用String,所以需要用到JSON工具去转成String. 但
-
JSON.toJSONString()空字段不忽略修改的问题
目录 JSON.toJSONString()空字段不忽略修改 JSON.toJSONString()丢失/少字段 问题描述 原因 JSON.toJSONString()空字段不忽略修改 使用JSON.toJSONString(object)方法,返回的json中,默认会将为空的字段自动忽略. public static void main(String[] args) { DossierApply dossierApply = new DossierApply(); String
-
JSON.parseObject和JSON.toJSONString实例详解
JSON.parseObject,是将Json字符串转化为相应的对象:JSON.toJSONString则是将对象转化为Json字符串.在前后台的传输过程中,Json字符串是相当常用的,这里就不多介绍其功能了,直接举一下应用的小例子,帮助理解这两个方法的用法. 首先用maven引入fastjson <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apa
-
使用JSON.toJSONString()返回{}的原因
目录 JSON.toJSONString()返回{}原因 测试代码 原因 JSON.toJSONString的坑有些字段没有了 1.问题 2.解决方式 3.原因 JSON.toJSONString()返回{}原因 测试代码 public static void main(String[] args) {undefined ResultModel resultModel = ResultModel.error("110","error"); System.out.pr
-
解决JSONObject.toJSONString()输出null的问题
目录 JSONObject.toJSONString()输出null 代码 输出 看下SerializerFeature属性 不要盲目的使用JSONObject.toJSONString JSONObject.toJSONString()输出null 问题:fastjson的api种,jsonObject.toJsonString(),当值为null时,没打印出来 代码 JSONObject jsonObject = new JSONObject(); jsonObject.put("id&qu
-
利用JSONObject.toJSONString()包含或排除指定的属性
目录 JSONObject.toJSONString包含或排除指定的属性 演示程序 JSONObjecttoJSONString遇到的坑 引入pom文件 使用JSONObject输出int类型的map JSONObject.toJSONString包含或排除指定的属性 将一个实体对象转换成Json字符串 JSON.toJSONString() FastJson提供的SerializeFilter类可以指定转换时要包含的属性,或者指定转换时要排除的属性. JSONObject.toJSONStri
-
使用JSONObject.toJSONString 过滤掉值为空的key
目录 JSONObject.toJSONString过滤值为空的key 情况 也就是这个方法 JSONObject.toJSONString自动过滤空值 JSONObject.toJSONString 过滤值为空的key 情况 public static String getJsonResult(int status, String msg, Object data){undefined Map<String, Object> resultMap=new HashMap<
-
关于JSONObject.toJSONString出现地址引用问题
目录 JSONObject.toJSONString地址引用问题 不要盲目的使用JSONObject.toJSONString JSONObject.toJSONString地址引用问题 如果一个对象中有两个同类型的对象属性a.b,如果a.b直接引用同一对象的内存地址,JSONObject.toJSONString方法得到的json字符串会出现内存地址引用. public static void main(String[] args) { JsonVO jsonVO = new
-
解决JSON数据因为null导致数据加载失败的方法
一.首先分析问题: 使用NSJSONSerialization或者AFN框架的AFHTTPSessionManager(底层也是NSJSONSerialization)将NSData数据转化成OC对象,有时会出现URL正确,加载数据任然会报错: reason: '-[NSNull length]: unrecognized selector sent to instance 分析原因发现,转化出来的OC对象中含有null.所以,NSNull没有length方法,所以会报找不到方法错误. 二.解决
-
解决MySQL客户端输出窗口显示中文乱码问题的办法
最近发现,在MySQL的dos客户端输出窗口中查询表中的数据时,表中的中文数据都显示成乱码,如下图所示: 上网查了一下原因:之所以会显示乱码,就是因为MySQL客户端输出窗口显示中文时使用的字符编码不对造成的,可以使用如下的命令查看输出窗口使用的字符编码:show variables like 'char%'; 命令执行完成之后显示结果如下所示: 可以看到,现在是使用utf8字符编码来显示中文数据的,但是因为操作系统是中文操作系统,默认使用的字符集是GB2312,所以需要把输出窗口使用的字符编码
-
解决Python一行输出不显示的问题
在使用python函数print()时,如下代码会出现输出无法显示的问题: 分三次在一行输出 123 print(1, end="") print(2, end="") print(3, end="") 当print不加end时,print函数会自动添加换行,和C++不一样需要手动添加cout<endl.加了end,一行后面没有了换行符,这时候是没办法输出的,也就是说,一行输出后面必须要有换行符输出才能显示. 修改代码: print(1,
-
解决Python3 控制台输出InsecureRequestWarning问题
解决Python3 控制台输出InsecureRequestWarning的问题 问题: 使用Python3 requests发送HTTPS请求,已经关闭认证(verify=False)情况下,控制台会输出以下错误: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.rea
随机推荐
- JSP一句话后门
- 细说FAT16与FAT32区别
- Apache实现Web Server负载均衡详解(不考虑Session版)
- 使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
- 分享一下Mysql常见的几个错误问题及解决方法
- Android编程实现调用系统分享功能示例
- Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
- 利用node.js写一个爬取知乎妹纸图的小爬虫
- javascripit实现密码强度检测代码分享
- 结合代码图文讲解JavaScript中的作用域与作用域链
- 比较漂亮的几款可爱的flash日历收藏
- qTip2 精致的基于jQuery提示信息插件
- JavaScript中利用构造器函数模拟类的方法
- Linux NFS服务器安装与配置思路分析
- Apache 安装和使用文档
- 快速增强路由器安全的十个小技巧
- iOS实现百度地图拖拽后更新位置以及反编码
- Java父线程(或是主线程)等待所有子线程退出的实例
- 解决JSON.stringify()自动将中文转译成unicode的问题
- C#使用private font改变PDF文件的字体详解