JSON返回结果修改null为"";json字段为null时输出空字符串
- 简介 (Introduction):
- 背景
json字符串返回的需要"",但是却是null,怎么处理呢,如下 - 结构图
1 [
2 {
3 "1":{
4 "age":"",
5 "id":"10086",
6 "userName":"zhangsan"
7 },
8 "2":{
9 "age":"",
10 "id":"",
11 "userName":""
12 },
13 "3":null
14 }
15 ]需要转化为
1 {
2 "1":{
3 "age":"",
4 "id":"10086",
5 "userName":"zhangsan"
6 },
7 "2":{
8 "age":"",
9 "id":"",
10 "userName":""
11 },
12 "3":""
13 }
- 背景
核心
采用过滤模式,过滤到为null的对象,将其判断返回成""快速上手(Getting Started)
实体对象1 public class User {
2
3 private String id;
4 private String userName;
5 private String age;
6
7 public String getId() {
8 return id;
9 }
10
11 public void setId(String id) {
12 this.id = id;
13 }
14
15 public String getUserName() {
16 return userName;
17 }
18
19 public void setUserName(String userName) {
20 this.userName = userName;
21 }
22
23
24 public String getAge() {
25 return age;
26 }
27
28 public void setAge(String age) {
29 this.age = age;
30 }
31 }多种方式测试
1、JSONArray.fromObject(jsonMap)
2、JSON.toJSONString(jsonMap)
3、JSONObject.toJSONString(jsonMap)1 import com.alibaba.fastjson.JSON;
2 import com.alibaba.fastjson.JSONObject;
3 import com.alibaba.fastjson.serializer.ValueFilter;
4 import com.mrliu.bean.User;
5 import net.sf.json.JSONArray;
6
7 import java.util.HashMap;
8 import java.util.Map;
9
10 public class TestJsonNullQuestion {
11
12
13 public static void main(String[] args) {
14
15
16 User user = new User();
17
18 user.setId("10086");
19 user.setUserName("zhangsan");
20
21 User user1 = new User();
22
23 Map<String, Object> jsonMap = new HashMap<>();
24
25
26 jsonMap.put("1", user);
27 jsonMap.put("2", user1);
28 jsonMap.put("3", null);
29
30
31 System.out.println(JSONArray.fromObject(jsonMap));
32 System.out.println(JSON.toJSONString(jsonMap));
33 System.out.println(JSONObject.toJSONString(jsonMap));
34
35
36 /**
37 * 过滤器,发现传入的是null时,转化为""
38 */
39 ValueFilter filter = new ValueFilter() {
40 @Override
41 public Object process(Object obj, String s, Object v) {
42 if (v == null)
43 return "";
44 return v;
45 }
46 };
47
48 // 添加过滤器
49 System.out.println(JSONObject.toJSONString(jsonMap, filter));
50 }
51
52
53 }
环境设置 (Prerequisite):
- 环境
JDK1.8 - 配置
IDEA编辑 存在问题
暂无
- 环境
进阶篇 (Advanced):
研究中 ......
JSON返回结果修改null为"";json字段为null时输出空字符串的更多相关文章
- json字段为null时输出空字符串
Map < String , Object > jsonMap = new HashMap< String , Object>(); jsonMap.put(); jsonMa ...
- 为什么fastjson字段为null时不输出空字符串?
为什么fastjson字段为null时不输出空字符串? Map < String , Object > jsonMap = new HashMap< String , Object& ...
- 禁止ASP.NET MVC模型绑定时将空字符串绑定为null
为model添加[DisplayFormat(ConvertEmptyStringToNull = false)] [Display(ResourceType = typeof(AppStrings) ...
- mysql修改表中某个字段的默认值
Mysql中用SQL增加.删除字段,修改字段名.字段类型.注释,调整字段顺序总结 在网站重构中,通常会进行数据结构的修改,所以添加,删除,增加mysql表的字段是难免的,有时为了方便,还会增加修改 ...
- django字段设置null和blank的区别
null 这个选项跟数据库有关. null=True的话,数据库中该字段是NULL,即允许空值:null=False(默认)的话,数据库中该字段是NOT NULL,即不允许空值. blank 这个选项 ...
- Access空字符串和Null值
什么是空字符串和Null值: Microsoft Access可以区分两种类型的空值.因为在某些情况下,字段为空,可能是因为信息目前无法获得,或者字段不适用于某一特定的记录.例如,表中有一个“电话号码 ...
- Javascript 中的false、0、null、undefined和空字符串对象
在Javascript中,我们经常会接触到题目中提到的这5个比较特别的对象——false.0.空字符串.null和undefined.这几个对象很容易用错,因此在使用时必须得小心. 类型检测 我们下来 ...
- 【转】Javascript 中的false,零值,null,undefined和空字符串对象
js 开发中经常会碰到判断是否为空的情况,关于 null 和 undefined 的区别了解的不是很好,刚好看见这篇文章,转过来学习一下,以下是转载正文: 在Javascript中,我们经常会接触到题 ...
- Oracle坑之-空字符串与NULL
空字符串与NULL 首先有如下代码 SELECT * FROM Pdc_DataDomain DD INNER JOIN Pdc_DD_Table DDT ON DD.DataDomainID = D ...
- Javascript 中的false,零值,null,undefined和空字符串对象
在Javascript中,我们经常会接触到题目中提到的这5个比较特别的对象--false.0.空字符串.null和undefined.这几个对象很容易用错,因此在使用时必须得小心. 类型检测 我们下来 ...
随机推荐
- #NIM游戏#CodeChef A Game With a Sheet of Paper
SHGAME 分析 可以发现每次相当于去掉上下左右的若干行列,也就是 \(x-1,n-1-x,y-1,m-1-y\) 题目就转换成了取石子的问题,先手必胜当且仅当 \((x-1)\) xor \((n ...
- #李超线段树,树链剖分#洛谷 4069 [SDOI2016]游戏
题目 分析 就是把线段扔到了树上,注意区间查询要比较两个端点的函数值, 把区间赋值转换成两部分,从起点到LCA的区间是斜率为负数的线段, 从终点到LCA的区间是斜率为正数的线段. 代码 #includ ...
- #回滚莫队#AT1219 歴史の研究
洛谷题目 AT1219 分析 不满足区间减性质的运算,如最值,就不能用普通莫队求, 考虑回滚莫队,它的核心思想就是若区间在块内直接暴力, 否则将右端点从小到大排序,右端点按普通莫队求,那么左端点由于只 ...
- Elasticjob 3.x 最新版本源码解读(含备注源码)
源码地址(含备注):https://gitee.com/ityml/elastic-job-zgc 官方网站: https://shardingsphere.apache.org/elasticjob ...
- Avalonia的模板控件(Templated Controls)
在Avalonia的UI框架中,TemplatedControl是一个核心组件,它提供了一种强大的方式来创建可重用且高度可定制的控件. 本文将深入探讨TemplatedControl的概念.其带来的优 ...
- 动态库 DLL 封装五:dll中弹出一个dialog窗口
操作步骤: 1.在dll项目中,点击 资源,新建一个 dialog 2.cpp文件 CDialog dlg(IDD_STA); // 显示窗口 dlg.Create(IDD_STA, 0); dlg. ...
- 【译】新的 MSBuild 编辑体验
MSBuild 是 .NET 开发体验的基本组成部分,但它对新手和有经验的开发人员都具有挑战性.为了帮助开发人员更好地理解他们的项目文件,并访问需要直接编辑项目文件的高级功能,我们发布了一个实验性的 ...
- mogdb里xlog相关的几个参数
openGauss/MogDB 3.0 闪回恢复测试 本文出处:https://www.modb.pro/db/411368 介绍 闪回恢复功能是数据库恢复技术的一环,可以有选择性的撤销一个已提交事务 ...
- NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL]
NL2SQL基础系列(1):业界顶尖排行榜.权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL.Text2DSL] Text-to-SQL(或者Text2S ...
- k8s之基于metallb实现LoadBalancer型Service
一.实验说明 1.介绍 MetalLB 是裸机 Kubernetes 集群的负载均衡器实现,使用标准路由协议,主要用于暴露 K8s 集群的服务到集群外部访问,MetalLB 可以让我们在 K8s 集群 ...