`
wnli350
  • 浏览: 6213 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

SPRINGMVC JACKSON NULL

阅读更多
最近项目使用springmvc,用的是4.0.5版本,在controller里面要做JSON输出,使用springmvc的自动转换来做,示例代码如:
	@ResponseBody
	@RequestMapping("/getBeans")
	public JSONObject getBeans(@RequestParam int id) {
		JSONObject obj = new JSONObject();
		Bean bean = new Bean();
		bean.setAa("adfa");
		bean.setLastUpdatetime(null);
		obj.put("bean", bean);
		return obj;
	}

结果在返回404,500错误,后台没有打印错误,网上找了一下,和这个错误类似:
http://blog.zhaoimpulse.com/web/springmvc-exception/,同样根据文章介绍配置了一下自定义exceptionHandler,可以打印出错误:
com.fasterxml.jackson.databind.JsonMappingException: Object is null (through reference chain: net.sf.json.JSONObject["bean"]->net.sf.json.JSONObject["lastUpdatetime"]->net.sf.json.JSONNull["empty"])
错误是因为对象里面有个Date类型字段为NULL,但是文章没有提到怎么解决。
在网上找了一圈,找了一些资料
http://www.cnblogs.com/yangy608/p/3936848.html
http://my.oschina.net/fornews/blog/358014
http://blog.csdn.net/sdyy321/article/details/40298081
看应该可以通过设置配置参数来过滤,参考资料通过各种方式来设置参数,各种姿势啊。。。结果没有效果
害我以为是不是这个版本的SPRINGMVC,JACKSON有问题啊。

后来写了个main方法,跟了下代码才发现问题所在
		ObjectMapper mapper = new ObjectMapper();
		mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
		System.out.println(mapper.writeValueAsString(obj));

发现JAVA对象转为JSON对象时,null的值会被转为JSONNull对象,所以导致限制null的配置不生效,而JACKSON又转不了JSONNull。
解决就是直接用JAVA对象:
	@ResponseBody
	@RequestMapping("/getBeans")
	public Map getBeans(@RequestParam int id) {
	}

写在最后,困扰了几天解决了还是很高兴,看来以后使用JACKSON转的时候还是尽量直接使用JAVA对象。
分享到:
评论

相关推荐

    SpringMVC中处理json数据所需jar包 jackson2.5.0.jar

    1、SpringMVC 处理json数据所需jackson相关jar包. jackson-annotations-2.5.0.jar , jackson-core-2.5.0.jar,jackson-databind-2.5.0.jar 2、该版本jar包可以解决转json数据报错:can not access a member of ...

    spring mvc拦截器过滤json中的null值

    在Spring MVC框架中,我们经常需要处理JSON数据,这些数据可能包含null值。在某些情况下,为了保持数据的整洁和避免后端处理null值时出现异常,我们需要在数据传输前过滤掉这些null值。本教程将详细介绍如何使用...

    SpringMVC:整合JQUERY与JSON

    - JSON支持的数据类型有字符串、数字、布尔、null、数组和对象。 4. **SpringMVC与jQuery整合**: - **Ajax请求**:使用jQuery的`.ajax()`或`.getJSON()`发起异步请求到SpringMVC的控制器方法。 - **数据序列化...

    SSM框架json使用jackson

    `@JsonInclude`可以避免序列化null值,而`@JsonAutoDetect`定义了何时自动检测字段、方法和构造函数。 5. **`@JsonFormat`**:用于格式化日期和时间,可以指定特定的日期时间格式。 在SSM中,Jackson的使用通常...

    SpringMVC-9 处理JSON数据

    1. JSON结构:JSON由键值对组成,键用引号包围,值可以是字符串、数字、数组、对象、布尔或null。例如: ```json { "name": "John", "age": 30, "city": "New York" } ``` 2. 在Java中,JSON对象通常映射为Java...

    springmvc 参数绑定例子1

    - **Jackson 库**:Spring MVC默认使用Jackson库来反序列化JSON数据,将JSON字符串转换为Java对象。 ```java @PostMapping("/ajax") public ResponseEntity<?> handleAjaxRequest(@RequestBody MyRequestObject ...

    SpringMVC中使用@RequestBody,@ResponseBody注解实现Java对象和XML/JSON数据自动转换(下)

    - 对于JSON数据,Spring MVC默认使用了Jackson库(Jackson2HttpMessageConverter)。若要返回JSON数据,确保项目已引入Jackson库,并且返回类型可被Jackson序列化。 - 对于XML数据,Spring MVC默认使用了JAXB库...

    springMVC整合json

    在SpringMVC中,整合JSON主要涉及两个关键组件:`MessageConverter`和`Jackson`库(或`Gson`等其他JSON库)。`MessageConverter`负责将Java对象转换成JSON字符串,以及将接收到的JSON字符串还原为Java对象。 **3. ...

    SpringMVC整合jdbc+json实例

    同时,确保引入了SpringMVC、Spring JDBC和json相关的依赖库,如jackson或gson,用于JSON转换。 **2. 配置SpringMVC** 在`spring-servlet.xml`中,我们需要配置视图解析器(如InternalResourceViewResolver)、...

    SpringMVC入门项目

    - SpringMVC支持JSON和XML数据交换,使用Jackson或Gson库。 通过这个SpringMVC入门项目,你可以学习到如何搭建SpringMVC环境,编写Controller,配置视图解析,处理表单数据,以及如何实现简单的CRUD操作。随着对...

    springmvc和mybatis整合包括json和validator 和文件上传所需所有jar包

    - **Hibernate Validator**:Bean Validation的实现,包含丰富的校验注解,如`@NotNull`,`@Size`,`@Pattern`等。 - **使用示例**:在模型类上添加校验注解,然后在控制器中使用`@Valid`进行校验。 5. **文件...

    springmvc-base-input-02.rar

    在这个项目中,`pom.xml` 可能包含了 Spring MVC 相关的库和其他必要的依赖,如 Servlet API、JSTL、Jackson 或者 Gson 用于 JSON 处理,以及日志框架如 Log4j 或 SLF4J。这些依赖是构建和运行 Spring MVC 应用的...

    完整版 Java开发实训课程系列-SpringMVC框架技术教程 第7章 文件上传和json数据交互 (共30页).pptx

    2. **JSON数据格式**:JSON支持字符串、数字、布尔值、null、对象和数组等多种数据类型。 3. **JSON语法**:JSON对象使用花括号 `{}` 表示,数组使用方括号 `[]` 表示,键值对之间用逗号分隔,键和值之间用冒号分隔...

    Java实训教程 Java软件开发实战 Java开发框架介绍 SpringMVC_5_常用注解 共22页.pptx

    - **JSON数据响应**:通过`@ResponseBody`注解配合Jackson等库直接返回JSON格式的数据。 #### 六、SpringMVC_5_常用注解 - **`@Controller`注解**: - 作用:用于标记一个类为控制器。 - 使用场景:当一个类主要...

    springmvc返回json数据的jar包

    同时,通过设置`@JsonInclude(JsonInclude.Include.NON_NULL)`可以忽略空值,避免不必要的网络传输。 8. **安全性**:返回JSON时,要注意不要暴露敏感信息。例如,不要直接返回数据库连接字符串或其他机密信息。...

    SpringMVC的Body参数拦截的问题

    // 检查是否适用RequestBodyAdvice,这里检查了是否使用了Jackson的HttpMessageConverter且参数上有@JsonView注解 return (AbstractJackson2HttpMessageConverter.class.isAssignableFrom(converterType) && ...

    Springmvc 4.x利用@ResponseBody返回Json数据的方法

    配置这个转换器需要在Spring MVC的配置文件中添加相关的bean定义,并且需要引入jackson相关的jar包(jackson-annotations, jackson-core, jackson-databind)。 在配置文件中,需要定义一个...

    springmvc01.zip_DEMO_JSON校验_spring mvc

    首先,你需要在实体类中添加对应的校验注解,如`@NotNull`、`@Size`等。然后,在控制器的方法中,使用`@Valid`注解来激活校验。如果校验失败,Spring MVC会自动将错误信息放入BindingResult对象中,你可以进一步处理...

    Spring MVC--8.JSON、国际化、文件上传

    Spring MVC提供了`Jackson`或`Gson`库来实现JSON的序列化和反序列化。 例如: ```java @RequestMapping(value = "/getJson", method = RequestMethod.GET) @ResponseBody public User getUser() { User user = new...

    spring与Redis的入门Demo

    Jackson2JsonRedisSerializer<Object> serializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect....

Global site tag (gtag.js) - Google Analytics