json jackson

1.引入依赖

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.3</version>
        </dependency>

2.添加 conventer

    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <property name="objectMapper" ref="objectMapper" />
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

    <bean id="objectMapper" class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"
        p:indentOutput="false" p:simpleDateFormat="yyyy-MM-dd‘T‘HH:mm:ss.SSSZ" />

indentOutput 缩进打印,false 无缩进 ,true 有缩进(格式化)

{
  "b" : "你好",
  "a" : "2016-10-06T14:54:16.918+0800"
}
{"b":"你好","a":"2016-10-06T14:57:33.724+0800"}

simpleDateFormat 可以将日期类型自动转为指定格式字符串

具体用法可以查看该类

MappingJackson2HttpMessageConverter

By default, this converter supports application/json and application/*+json with UTF-8 character
set. This can be overridden by setting the supportedMediaTypes property.

这样重写

    <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>application/json;charset=UTF-8</value>
            </list>
        </property>
    </bean>

3. 设置controller 的 response

关于controller 返回时由哪个 conventer 处理的问题

首先 如果不是加 @ResponseBody 则由viewresolver 处理

在 @Controller + @ResponseBody = @RestController

You can use the new @RestController annotation with Spring MVC applications, removing the need to add @ResponseBody to each of your @RequestMapping methods.

这种情况下 converter就生效了,会根据 Content-Type:text/html;charset=ISO-8859-1 类型分配给具体的 converter 处理

默认有一个

2016-10-06 15:39:48 DEBUG RequestResponseBodyMethodProcessor:250 - Written [你好] as "text/html" using [[email protected]7305a3]

这个默认的 StringHttpMessageConverter 使用的编码是

public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");

可以覆盖这个 converter

            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg value="UTF-8" />
            </bean>

有这么多 HttpMessageConverter 视情况增加到 <mvc:message-converters>...

时间: 2024-11-25 04:57:40

json jackson的相关文章

spray json, jackson 转到type时多key和少key的比较

有组合关系的三个class定义 A { B { C {...} ... } ... } 每个class都有loadFromJson和writeAsJson方法.过去几年,三个class里的成员变量一直在添加,而数据库里有很多json string类型的老数据,为了能够正确的把它们转化为class,就需要对一些域进行判断,举个例子. 在 db 中有一个json string,是这样的 name: xins, age: 24 而几年后C添加了一个新的域,company 那么loadFromJson就

Jackson 框架,轻易转换JSON

Jackson 框架,轻易转换JSON Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json.xml转换成Java对象. 前面有介绍过json-lib这个框架,在线博文:http://www.cnblogs.com/hoojo/archive/2011/04/21/2023805.html 相比json-lib框架,Jackson所依赖的jar包较少,简单易用并且性能也要相对高些.而且Jackson社区相对比较活跃,更新速度也比较快. 一.准备工作 1. 下

Java Jackson - Json Polymorphism

from://http://www.studytrails.com/java/json/java-jackson-Serialization-polymorphism.jsp Jackson provides a way to maintain sub type information while serializing java objects. It is possible to recreate the exact sub type. The type information can be

Java之JSON操作(Jackson)

Java to JSON: 1 package json.jackson; 2 3 import bean.User; 4 import com.fasterxml.jackson.databind.ObjectMapper; 5 6 import java.io.File; 7 import java.util.Map; 8 9 /** 10 * Jackson – Java to JSON 11 * 功能:JSON与Java对象.Map等类型转换,JSON文件的读写等 12 * 依赖包:ja

Jackson.jar的使用记录

之前一直使用json-lib.jar,最近发现网上说这个jackson.jar比较好 package com.spring.controller; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.Date; import java.util.List; import

通过codehaus来实现json写入文件和读取文件成json对象

原文:通过codehaus来实现json写入文件和读取文件成json对象 代码下载地址:http://www.zuidaima.com/share/1550463256562688.htm pom.xml需要增加如下依赖: <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-lgpl</artifactId> <version>1.

Jackson 概述

原文地址 本文内容 JSON 的三种方式 示例 Full Data Binding (POJO) 示例 "Raw" Data Binding 示例 用泛型数据绑定 Tree Model 示例 Streaming API 示例 Streaming API 示例 2: 数组 Next Steps Inspired by the quality and variety of XML tooling available for the Java platform (StAX, JAXB, et

jackson简单使用案例

准备:下载jackson的jar包,不要使用2.8版本,类加载器错误,原因未知 entity: getter和setter省略 public class Person { private int id; private String name; @JsonProperty(value="ismale") private boolean gender; @JsonFormat(pattern="yyyy-MM-dd") //输入的格式必须满足,不然抛异常:json串也

JackSon学习笔记(一)

概述 Jackson框架是基于Java平台的一套数据处理工具,被称为“最好的Java Json解析器”. Jackson框架包含了3个核心库:streaming,databind,annotations.Jackson还包含了其它数据处理类库,此外不作说明.Jackson版本: 1.x (目前版本从1.1~1.9)与2.x.1.x与2.x从包的命名上可以看出来,1.x的类库中,包命名以:org.codehaus.jackson.xxx开头,而2.x类库中包命令:com.fastxml.jacks