springboot 处理返回结果中字段为空或为null,不展示字段的问题(字段展示不全)

package com.aiqin.mgs.market.api.config;

import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;

/**
 * description: fastjson处理返回的参数为null、或者不返回
 * date: 2019/11/22 15:03
 * author: hantao
 * version: 1.0
 * springboot 处理返回结果中字段为空或为null,不展示字段的问题(字段展示不全)
 */
@Configuration
public class FastJsonConfiguration extends WebMvcConfigurationSupport {

    /**
     * 使用阿里 fastjson 作为JSON MessageConverter
     * @param converters
     */
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
        FastJsonConfig config = new FastJsonConfig();
        config.setSerializerFeatures(
                // 保留map空的字段
                SerializerFeature.WriteMapNullValue,
                // 将String类型的null转成""
                SerializerFeature.WriteNullStringAsEmpty,
                // 将Number类型的null转成0
                SerializerFeature.WriteNullNumberAsZero,
                // 将List类型的null转成[]
                SerializerFeature.WriteNullListAsEmpty,
                // 将Boolean类型的null转成false
                SerializerFeature.WriteNullBooleanAsFalse,
                // 避免循环引用
                SerializerFeature.DisableCircularReferenceDetect);

        converter.setFastJsonConfig(config);
        converter.setDefaultCharset(Charset.forName("UTF-8"));
        List<MediaType> mediaTypeList = new ArrayList<>();
        // 解决中文乱码问题,相当于在Controller上的@RequestMapping中加了个属性produces = "application/json"
        mediaTypeList.add(MediaType.APPLICATION_JSON);
        converter.setSupportedMediaTypes(mediaTypeList);
        converters.add(converter);
    }

    /**
     * 整合了swagger需要配置swagger拦截
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html","index.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/META-INF/resources/static/");
    }

}
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 要在MySQL判断一个字段是否为空字符串或者NULL,我们可以使用IS NULL或IS NOT NULL以及字符串函数来完成。 如果我们想判断一个字段是否为空字符串,我们可以使用以下的语句: SELECT * FROM tablename WHERE columnname = ''; 其,tablename是表名,columnname是字段名。这个查询将返回所有该字段为空字符串的记录。 如果我们想判断一个字段是否为NULL,我们可以使用IS NULL来实现: SELECT * FROM tablename WHERE columnname IS NULL; 这个查询将返回所有该字段NULL的记录。 如果我们想判断一个字段既不为空字符串也不为NULL,我们可以使用以下的语句: SELECT * FROM tablename WHERE columnname != '' AND columnname IS NOT NULL; 这个查询将返回所有该字段既不为空字符串也不为NULL的记录。 此外,我们还可以使用字符串函数来进一步判断字段是否为空字符串或者NULL。例如,我们可以使用TRIM函数来去除字段两端的空格,然后再判断是否为空字符串或者NULL: SELECT * FROM tablename WHERE TRIM(columnname) = ''; 这个查询将返回所有该字段经过TRIM函数处理为空字符串的记录。 总之,在MySQL判断字段为空字符串或NULL,我们可以使用IS NULL、IS NOT NULL以及字符串函数来实现。 ### 回答2: 在MySQL,可以使用以下方法来判断字段是否为空字符串或NULL: 1. 使用IS NULL或IS NOT NULL关键字判断字段是否为NULL。例如,SELECT * FROM 表名 WHERE 字段名 IS NULL返回字段NULL的记录,SELECT * FROM 表名 WHERE 字段名 IS NOT NULL返回字段不为NULL的记录。 2. 使用COALESCE函数来判断字段是否为空字符串或NULL。COALESCE函数接受多个参数,返回第一个非NULL参数的。例如,SELECT * FROM 表名 WHERE COALESCE(字段名, '') <> ''将返回字段为空字符串或NULL的记录。 3. 使用LENGTH函数来判断字段长度是否为0。LENGTH函数返回指定字段的长度。例如,SELECT * FROM 表名 WHERE LENGTH(字段名) > 0将返回字段为空字符串或NULL的记录。 4. 使用TRIM函数来删除字段前后的空格,然后判断是否为空字符串或NULL。TRIM函数用于删除指定字段前后的空格。例如,SELECT * FROM 表名 WHERE TRIM(字段名) <> ''将返回经过TRIM处理字段为空字符串或NULL的记录。 以上是判断字段为空字符串或NULL的几种常用方法。根据具体的需求,选择合适的方法进行判断即可。 ### 回答3: 在MySQL,我们可以使用IF函数或COALESCE函数来判断字段是否为空字符串或NULL。 1. 使用IF函数: IF函数用于在条件成立时返回一个,否则返回另一个。我们可以将字段与空字符串进行比较,如果相等,则说明字段为空字符串或NULL。 例如,我们有一个名为"column_name"的字段,我们可以使用以下语句来判断该字段是否为空字符串或NULL: ``` SELECT IF(column_name = '' OR column_name IS NULL, '字段为空', '字段为空') AS result FROM your_table; ``` 这将返回结果为"字段为空"或"字段为空"的一列。 2. 使用COALESCE函数: COALESCE函数用于返回参数列表的第一个非NULL。我们可以将字段与空字符串进行比较,并将NULL替换为一个非NULL,然后使用COALESCE函数来返回。 例如,我们有一个名为"column_name"的字段,我们可以使用以下语句来判断该字段是否为空字符串或NULL: ``` SELECT COALESCE(NULLIF(column_name, ''), '字段为空') AS result FROM your_table; ``` 这将返回结果为字段(如果不为空字符串)或"字段为空"(如果为空字符串或NULL)的一列。 无论使用IF函数还是COALESCE函数,我们都可以根据需要对空字符串或NULL进行判断,并返回相应的结果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值