• 简介 (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. #树状数组,dp#SGU 521 North-East

    题目 在平面上有 \(n\) 个点,现在有一个人要从某个点出发, 每次只能到达横纵坐标都超过原坐标的点,也就是 \(x_j<x_i,y_j<y_i\) 如果他要经过最多的点,那么哪些点是可 ...

  2. #网络流,二分#洛谷 3324 [SDOI2015]星际战争

    题目 分析 二分答案,然后建图判断可行性 代码 #include <cstdio> #include <cctype> #include <queue> #defi ...

  3. 如何翻译 Markdown 文件?-2-几种商业及开源解决方案介绍

    背景 近期在搭建英文博客-<e-whisper.com>, 需要对现有的所有中文 Markdown 翻译为英文. 需求如下: 将 Markdown 文件从中文 (zh-CN) 翻译为英文 ...

  4. 比nestjs更优雅的ts控制反转策略-依赖查找

    一.Cabloy5.0内测预告 Cabloy5.0采用TS对整个全栈框架进行了脱胎换骨般的大重构,并且提供了更加优雅的ts控制反转策略,让我们的业务开发更加快捷顺畅 1. 新旧技术栈对比: 后端 前端 ...

  5. signalr 应用于微信小程序(一)

    前言 在2017年基于signalr 和微信小程序 写的脚本. 正文 先安装signalr: 1.安装singalr,用nutget就行,用这个包管理就行. 2.使用singalr 3.根据singa ...

  6. 从LLaMA-Factory项目认识微调

    概述 什么是LLaMA-Factory? LLaMA-Factory是一个在github上开源的,专为大模型训练设计的平台.项目提供中文说明,可以参考官方文档:https://github.com/h ...

  7. Redis工具类,不用框架时备用

    redis.hostName=127.0.0.1 redis.port=6379 redis.database=3 redis.timeout=15000 redis.usePool=true red ...

  8. 力扣81(java&python)-搜索旋转排序数组 II(中等)

    题目: 已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同. 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 ...

  9. 力扣283(java)-移动零(简单)

    题目: 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序. 请注意 ,必须在不复制数组的情况下原地对数组进行操作. 示例 1: 输入: nums = [0, ...

  10. 一个开发者自述:我是如何设计针对冷热读写场景的 RocketMQ 存储系统

    简介: 文章中的很多知识点,都是通过云原生编程挑战赛学到的,在一些问题在表述方式.甚至理解上都可能存在一些问题,甚至会有一些谬论:敢于尝试就会犯错,有犯错才会有成长,欢迎各位大佬不舍赐教,多多指正,让 ...