文档章节

Spring mvc jackson输出null为空字符串、单引号、字段和数字加引号

weiliu007
 weiliu007
发布于 2016/09/30 10:21
字数 231
阅读 184
收藏 1

1、json requestbody 输要用单引号(jackson默认是双引号,单引号直接报错)

2、responsebody数字输出要加引号,字段名要加引号。

3、null值为空串

Xml代码

于是查阅官方文档,终于找到方法,有点小搓,直接在Converter对象上注入一个自定义类ObjectMappingCustomer:

 <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">   
        <property name="messageConverters">   
            <list>   
                <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>text/plain;charset=UTF-8</value>
                            <value>application/json;charset=UTF-8</value>
                        </list>
                    </property>
                    <property name="objectMapper">
                        <bean class="com.wuliaolll.util.ObjectMappingCustomer"></bean>
                    </property>
                </bean>   
            </list>   
        </property>   
    </bean>   

Java代码

package com.wuliaolll.util;

import java.io.IOException;

import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializerProvider;

public class ObjectMappingCustomer extends ObjectMapper
{

    public ObjectMappingCustomer()
    {
        super();
        // 允许单引号
        this.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
        // 字段和值都加引号
        this.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
        // 数字也加引号
        this.configure(JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS, true);
        this.configure(JsonGenerator.Feature.QUOTE_NON_NUMERIC_NUMBERS, true);
        // 空值处理为空串
        this.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>()
        {

            @Override
            public void serialize(
                    Object value,
                    JsonGenerator jg,
                    SerializerProvider sp) throws IOException, JsonProcessingException
            {
                jg.writeString("");
            }
        });

    }
}


 

© 著作权归作者所有

共有 人打赏支持
weiliu007
粉丝 14
博文 171
码字总数 84766
作品 0
深圳
程序员
Spring mvc3 jackson输出null为空字符串问题

最近做项目,和其他人商议用json通信,因为对方是php程序员,php的编码风格对于java程序员来说就是变态,有几点变态需求: 1、json requestbody 输要用单引号(jackson默认是双引号,单引号直...

提广乾
2013/11/28
0
1
API接口返回值通过反射设置null的默认值

背景 一个费用的类,里面有各种费用,测试的时候数据不完整导致很多字段都是null。开始的时候返回给客户端的字段自动把null去掉了,但这样导致客户端接收的model不完整,自己添加字段的逻辑有...

RyanMiao
2016/12/25
111
1
SpringMVC(五):Ajax传值与接收值

1、Json包fastjson和Jackson //TODO jackson core asl 和 jackson mapper asl的区别,作用 2、spring mvc接收简单数据 2.1、接收int等基本类型的数据 jsp页面 $.ajax({ url: "${ctx}/StdMan...

_Roger_
2015/10/20
2.9K
0
Spring3 MVC 笔记(二) —json+rest优化

接上次的 spring mvc 注解的一些详细信息! 其实也是一些个人的学习笔记 呵呵! http://7454103.iteye.com/blog/716975 有了上面的基础! 一起来研究些其他的东西! 前端时间写了个 struts2 ...

李长春
2011/09/15
0
0
【Spring Boot-技巧】API返回值去除为NULL的字段

简介 在前后端分离的微服务时代,后端API需要良好的规范。本篇主要将一个数据返回时的一个小技巧-- 过滤为空字段 解决痛点:将有效解决数据传输过程中的流量浪费。 组件简介 Jackson Object...

千万之路刚开始
07/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

java基础知识,小栗子

来操作一下数组.....注意带参数的变长数组的使用. package com.avatus;import java.util.Random;import java.util.Scanner;public class Main { public static void main(St...

Oh_really
19分钟前
2
0
SSO单点登录PHP简单版

  前面做了一个新项目,需要用户资源可以需要共享。由于之前没有做过这样的东西,回家之后,立马网站百度“单点登录”。帖子很多,甄别之后,这里列几篇认为比较有营养。   http://blog...

slagga
57分钟前
2
0
Java 泛型详解-绝对是对泛型方法讲解最详细的,没有之一

对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。 本文参考java 泛型详解、Java中的泛型方法、 java泛型详解 1 概述 泛型在j...

hensemlee
今天
2
0
Annotation注解详细介绍

目录介绍 1.Annotation库的简单介绍 2.@Nullable和@NonNull 3.资源类型注释 4.类型定义注释 5.线程注释 6.RGB颜色纸注释 7.值范围注释 8.权限注释 9.重写函数注释 10.返回值注释 11.@Keep注释...

潇湘剑雨
今天
2
0
一步步编写自己的PHP爬取代理IP项目(二)

这一章节我们正式开展我们的爬虫项目,首先我们先要知道哪个网站能获取到免费代理IP,目前比较火的有西刺代理,快代理等,这里我们拿西刺代理作为例子。 这里就是一个个免费的IP地址以及各自...

NateHuang
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部