Map 转 json格式 保留null值的解决办法

开发中遇到将map数据转json格式,然后map中含null值的键值对都被转没了,所以记录一下,以下是解决方法

使用fastJson进行转换

import com.alibaba.fastjson.JSON

Map<String, Object> map = new HashMap<String, Object>();

String toJSON = JSON.toJSONString(map, SerializerFeature.WRITE_MAP_NULL_FEATURES, SerializerFeature.QuoteFieldNames);

第一个是WRITE_MAP_NULL_FEATURES表示:保留map中值为null的键值对,

第二个是QuoteFieldNames表示:输出key时是否使用双引号("")将键值都包裹起来,默认为true

关于SerializerFeature属性(列举比较常用的)

名称 含义

QuoteFieldNames 输出key时是否使用双引号,默认为true

QuoteFieldNames 输出key时是否使用双引号,默认为true

WriteMapNullValue 是否输出值为null的字段,默认为false

WriteNullNumberAsZero 数值字段如果为null,输出为0,而非null

WriteNullListAsEmpty List字段如果为null,输出为[],而非null

WriteNullStringAsEmpty 字符类型字段如果为null,输出为”“,而非null

WriteNullBooleanAsFalse Boolean字段如果为null,输出为false,而非null

原文地址:https://www.cnblogs.com/lvchengda/p/12604667.html

时间: 2024-11-05 17:29:16

Map 转 json格式 保留null值的解决办法的相关文章

spring mvc 处理接收的map 转换为 json 格式

开发中会遇到传递的map 参数以json 格式处理 ,springMVC中配置如下代码即可实现 <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <!-- JSON解析对象 --> <bean

LigerUi-js中ajax前台调用后台Json格式转换!(已解决)

LigerUi-js中ajax前台调用后台Json格式转换!(已解决) success: function (data, status) { var aaa = JSON2.stringify(data); alert(aaa ); } LigerUi-js中ajax前台调用后台Json格式转换!(已解决),布布扣,bubuko.com

shutil.copytree拷贝目录到cifs格式路径报错临时解决办法

shutil.copytree拷贝目录到cifs格式路径报错临时解决办法: 报错原因: 我理解是因为不能保留cifs路径的目录原时间戳(提示权限拒绝),非cifs格式路径不存在该问题 临时解决办法: 通过os.system调用另1个shell脚本(rsync拷贝目录)解决,rsync也是报权限拒绝,不过区别是rsync不影响脚本继续进行(shutil.copytree是直接报错终止) 原文地址:http://blog.51cto.com/yangzhiming/2135844

PHP Json函数不能处理中文的解决办法

PHP5.2 新增的 json 功能是非常受欢迎的,但是经过测试发现,json_encode对中文的处理是有问题的:    不能处理GB编码,所有的GB编码都会替换成空字符:    utf8编码的中文被编码成unicode编码,相当于javascript的escape函数处理的结果.    为了能正确使用json,首先我们就应该在编码上采用utf8编码,然后再对json_encode的返回结果稍加处理就可以得到正确的结果了.?1. [代码]php代码    <?php/*PHP5.2 新增的 j

ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值”解决办法

ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值”解决办法 今天遇到的一个问题: 直接修改数据表中的某些字段数据内容时报错: ORA-01461: 仅可以为插入 LONG 列的 LONG 值赋值”解决办法 上网查询发现解决途径有: 法1,数据库字符集应该是UTF-8的,对于UTF-8或欧洲的某些字符集,oracle在存储时,对于一个字符需要2个或3个字节的存储空间,虽然表定义 中为varchar2(4000),但是其实该字段的data_length为其2倍或3倍长.这种情况下

DELPHI XE5 UP2 运行IOS 遇到 Wrapper init failed: (null)问题的解决办法

一.问题表现: 在MAC OSX(10.9.2)上安装了比较新的XCODE5.1 和COMMAND LINE TOOLS 在DELPHI XE5 UP2上放了一个按钮,输出到MAC OSX上,出现: Wrapper init failed: (null) 查看了很多大侠的博客. 二.问题的其他表现在Embarcadero的论坛上找到: 原文位置:https://forums.embarcadero.com/thread.jspa?threadID=101749&tstart=0 What doe

json学习初体验--第三者jar包实现bean、List、map创json格式

1.的需要jar包裹json-lib.jar 下载链接: http://sourceforge.net/projects/json-lib/files/json-lib/ 此包还须要下面的依赖包, commons-lang.jar commons-beanutils .jar commons-collections.jar commons-logging.jar ezmorph.jar 2.创建javabean文件,以以下的为例: <span style="font-size:18px;&

json学习初体验--使用第三方的jar包实现bean、List、map创建json格式

1.需要的jar包json-lib.jar 下载地址: http://sourceforge.net/projects/json-lib/files/json-lib/ 此包还需要以下的依赖包, 2.创建javabean文件,以下面的为例: <span style="font-size:18px;">package com.gdhdcy.whp; public class person_bean { public int id; public int getId() { r

关于SSH 持久对象转Json双向关联解析过度的解决办法

小弟是一名被部分程序员所鄙视的培训狗,昨天做项目遇到一个问题,在SSH框架通过ajax向界面传递数据的时候,由于对象之间双向关联导致json解析过度,造成内存溢出,网上搜索了解决办法除了过滤某些关联对象之外就没有别的办法了,我的想法是通过设置解析深度来解决过度抓取的问题,开始也考虑性能问题,最好的解决办法就是做一个视图,单独写一个model .但是又不希望这样繁琐,后来发现换个观点一想,能解决这个过度解析的问题对系统的性能的提升其实也很大了,所以就自己动手准备写一个转换工具类,办法也很明了递归.