• 简介 (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时输出空字符串的更多相关文章

  1. json字段为null时输出空字符串

    Map < String , Object > jsonMap = new HashMap< String , Object>(); jsonMap.put(); jsonMa ...

  2. 为什么fastjson字段为null时不输出空字符串?

    为什么fastjson字段为null时不输出空字符串? Map < String , Object > jsonMap = new HashMap< String , Object& ...

  3. 禁止ASP.NET MVC模型绑定时将空字符串绑定为null

    为model添加[DisplayFormat(ConvertEmptyStringToNull = false)] [Display(ResourceType = typeof(AppStrings) ...

  4. mysql修改表中某个字段的默认值

    Mysql中用SQL增加.删除字段,修改字段名.字段类型.注释,调整字段顺序总结   在网站重构中,通常会进行数据结构的修改,所以添加,删除,增加mysql表的字段是难免的,有时为了方便,还会增加修改 ...

  5. django字段设置null和blank的区别

    null 这个选项跟数据库有关. null=True的话,数据库中该字段是NULL,即允许空值:null=False(默认)的话,数据库中该字段是NOT NULL,即不允许空值. blank 这个选项 ...

  6. Access空字符串和Null值

    什么是空字符串和Null值: Microsoft Access可以区分两种类型的空值.因为在某些情况下,字段为空,可能是因为信息目前无法获得,或者字段不适用于某一特定的记录.例如,表中有一个“电话号码 ...

  7. Javascript 中的false、0、null、undefined和空字符串对象

    在Javascript中,我们经常会接触到题目中提到的这5个比较特别的对象——false.0.空字符串.null和undefined.这几个对象很容易用错,因此在使用时必须得小心. 类型检测 我们下来 ...

  8. 【转】Javascript 中的false,零值,null,undefined和空字符串对象

    js 开发中经常会碰到判断是否为空的情况,关于 null 和 undefined 的区别了解的不是很好,刚好看见这篇文章,转过来学习一下,以下是转载正文: 在Javascript中,我们经常会接触到题 ...

  9. Oracle坑之-空字符串与NULL

    空字符串与NULL 首先有如下代码 SELECT * FROM Pdc_DataDomain DD INNER JOIN Pdc_DD_Table DDT ON DD.DataDomainID = D ...

  10. Javascript 中的false,零值,null,undefined和空字符串对象

    在Javascript中,我们经常会接触到题目中提到的这5个比较特别的对象--false.0.空字符串.null和undefined.这几个对象很容易用错,因此在使用时必须得小心. 类型检测 我们下来 ...

随机推荐

  1. C 语言:类型转换与常量的细致理解

    C 语言中的类型转换 有时,您必须将一种数据类型的值转换为另一种类型.这称为类型转换 隐式转换 当您将一种类型的值分配给另一种类型的变量时,编译器会自动进行隐式转换. 例如,如果您将一个 int 值分 ...

  2. 【FAQ】HarmonyOS SDK 闭源开放能力 —Scan Kit

    1.问题描述 Scan Kit扫描专用底层码流接口需要鉴权,鉴权失败后功能还能用吗? 解决方案 如果已经申请过白名单,因为异常导致的鉴权失败会优先放通,保障业务成功. 2.问题描述 调用Scan Ki ...

  3. MongoDB命令行交互

    命令行交互 命令行交互一般是学习数据库的第一步,不过这些命令在后续用的比较少,了解即可. 角色命令 创建角色 use admin db.createUser({"user": &q ...

  4. PIL.Image, numpy, tensor, cv2 之间的互转,以及在cv2在图片上画各种形状的线

    ''' PIL.Image, numpy, tensor, cv2 之间的互转 ''' import cv2 import torch from PIL import Image import num ...

  5. Sarsa模型和Q_learning模型简记

    1. Sarsa模型 1.1 Sarsa类代码: class SarsaAgent(object): def __init__(self,state_n,action_n,learning_rate= ...

  6. redis哨兵主备切换的数据丢失问题:异步复制、集群脑裂

    1.两种数据丢失的情况 主备切换的过程,可能会导致数据丢失 (1)异步复制导致的数据丢失 因为master -> slave的复制是异步的,所以可能有部分数据还没复制到slave,master就 ...

  7. 接口文档神器apidoc

    1.apidoc介绍 1.apidoc是什么? api文档生成工具:基于源代码备注创建的接口文档: 2.apidoc优势是啥? 超简单文档生成器:几乎支持目前主流的所有风格的注释, 如可在C#.Go. ...

  8. el-row el-col 的点击事件@click 没反应

    el-col 是vue封装的组件,不支持原生事件的触发.要想触发事件需要加修饰符".native" 无效果: <el-col :span="4" @cli ...

  9. 手写一个Mybatis框架

    第一:Mybatis框架介绍 最近看了一篇关于Mybatis的文章,发现MyBatis框架的核心功能其实不难,无非就是动态代理和jdbc的操作,难的是写出可扩展,高聚合,低耦合的规范的代码. 本文手写 ...

  10. 顺通鞋服ERP库存管理系统

    鞋服ERP库存管理系统是专门为鞋服行业设计的企业资源规划软件,它提供了一系列库存管理功能,帮助鞋服企业有效管理库存流程和提升库存管理效率.以下是一些鞋服ERP库存管理系统常见的功能和特点: 1. 库存 ...