• 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 ]
        View Code

        需要转化为

         1 {
         2     "1":{
         3         "age":"",
         4         "id":"10086",
         5         "userName":"zhangsan"
         6     },
         7     "2":{
         8         "age":"",
         9         "id":"",
        10         "userName":""
        11     },
        12     "3":""
        13 }
        View Code
    • 核心
      采用过滤模式,过滤到为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 }
        View Code

         多种方式测试
          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 }
        View Code
    •  环境设置 (Prerequisite):

      • 环境
        JDK1.8
      •  配置
        IDEA编辑
      • 存在问题
        暂无

    •  进阶篇 (Advanced):
        研究中 ......

  • 相关阅读:
    第三篇:服务提供与Feign调用
    第二篇:服务提供与Rest+Ribbon调用
    第一篇:注册中心Eureka
    先导篇:SpringCloud介绍篇
    将list集合按指定长度进行切分,返回新的List<List<??>>集合
    清空数据的简便语法
    JDK 1.8 新特性之Date-Time API
    读书笔记-我国弱势群体犯罪问题研究
    读书笔记-沙漠里的细水微光
    读书笔记-没有空白
  • 原文地址:https://www.cnblogs.com/liuyangfirst/p/13070817.html
Copyright © 2020-2023  润新知