使用jackson 序列化java对象的时候报异常:
com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException) (through reference chain: com.chanjet.gov.Student["age"]) at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:218) at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:183) at com.fasterxml.jackson.databind.ser.std.StdSerializer.wrapAndThrow(StdSerializer.java:155) at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:512) at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:117) at
被序列化的类:
package com.chanjet.gov; import org.springframework.web.bind.annotation.ModelAttribute; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; /** * Created by JasonQin on 2015/7/1. */ @JsonAutoDetect @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) public class Student { public Student() { } /*** * 用户数显示名称 */ public String name; /*** * 每用户的免费存储空间 */ public Integer age; @ModelAttribute("name") public String getName() { return name; } @ModelAttribute("age") public int getAge() { return age; } }
测试方法:
@Test public void test_PolicyInfo(){ ObjectMapper mapper = new ObjectMapper(); Student s=new Student(); try { System.out.println(mapper.writeValueAsString(s)); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }
原因:Student 类中成员变量age的属性是Integer(包装类型),但是在对应的getter方法中,返回的却是基本类型int.
解决方法:
方式一:修改getter方法,返回值改为包装类型Integer
方式二:
修改getter方法为:
@ModelAttribute("age") public int getAge() { if(age==null){ return 0; } return age; }
参考:http://www.cnblogs.com/jimmy-c/p/3978799.html
相关推荐
这个错误通常伴随着`java.lang.NullPointerException`异常,导致在启动Tomcat服务器时不断弹出错误对话框。这种情况下,尽管后台没有明显的错误日志,但频繁出现的警告窗口无疑会给开发工作带来不便。 ### 错误分析...
Java.lang.NullPointerException 解决方案与原因分析 Java.lang.NullPointerException 是 Java 语言中一种常见的异常,它发生在 Java 应用程序尝试使用 null 对象引用时。这种异常通常是由于程序员错误地认为对象...
java.lang.NullPointerException: Attempt to invoke virtual method ‘void android.widget.ImageView.setImageResource(int)’ on a null object reference 今天在家练习ListView的时候,遇到一个java.lang....
Caused by: java.lang.NullPointerException at com.semaphore.jna.LibraryFinder.loadPath(LibraryFinder.java:64) at com.semaphore.jna.LibraryFinder.<clinit>(LibraryFinder.java:44) ... 4 more Exception ...
在上述问题中,开发者遇到了一个特定的错误:“javax.xml.transform.TransformerException: java.lang.NullPointerException”。这个错误通常表明在尝试执行XML转换时,某个对象没有被正确地初始化或者为null。我们...
### Java.lang.NullPointerException 解决方法详解 在Java开发过程中,`java.lang.NullPointerException`(简称NPE)是一种常见的运行时异常。它发生在试图对空对象执行操作时,例如调用对象的方法或访问其属性等。...
Java.lang.NullPointerException 的可能原因及处理 Java.lang.NullPointerException 是 Java 语言中最常见的异常之一,它的出现通常是由于编程不当或对象未被正确初始化所致。在本文中,我们将探讨 Java.lang....
- **使用Optional**:Java 8引入的`Optional<T>`可以帮助避免空指针异常,它提供了一种更安全的方式来封装可能为null的值。 - **避免返回null**:设计方法时尽量避免返回null,而应返回一个默认值或抛出异常。 ### ...
- **异常路径**:`java.lang.Object -> java.lang.Throwable -> java.lang.Exception -> java.lang.RuntimeException -> java.lang.NullPointerException` - **解释**:当应用程序尝试使用未初始化的对象引用调用...
解决报错:java.lang.NullPointerException 解决方法:将文件的编码方式改为utf-8即可! 截图: 修改成功后: 代码: import os import json import re def json_to_html(i,cvenum): print('正在处理:'+...
在"JBuider第六章:Java.lang包"的教程中,你可能会深入学习到以下几个关键知识点: 1. **基础类和接口**:Java.lang包中的基础类包括`Object`、`String`、`Integer`、`Boolean`等,它们构成了Java类层次结构的基础...
java.lang.NullPointerException出现的几种原因及解决方案 java.lang.NullPointerException是Java中最常见的异常之一,它经常出现在日常编程中。了解java.lang.NullPointerException的原因和解决方案对于Java开发者...
Apache Commons Lang 是一个由 Apache 软件基金会开发的 Java 类库,它提供了一系列实用工具类,用于增强 JDK 内置的 String 类的功能。在给定的标题 "org.apache.commons.lang3.StringUtils.jar.rar" 中,我们可以...
出现此问题时使用:java.lang.NullPointerException at org.json.JSONObject.(JSONObject.java:144) at org.apache.sqoop.util.SqoopJsonUtil.getJsonStringforMap(SqoopJsonUtil.java:43) at org.apache.sqoop....
### Myeclipse安装Aptana插件后报java.lang.NullPointerException解决方案 #### 问题背景 在使用Myeclipse的过程中,不少用户遇到了一个较为常见的问题:安装Aptana插件之后,每次启动Myeclipse时都会出现`java....
这可能是由于多种原因引起的,包括但不限于错误的服务接口调用、不兼容的数据类型、空指针异常(NullPointerException)或者在服务执行过程中遇到的任何未捕获的异常。 Apache Axis2是一个流行的开源Web服务引擎,...
Java语言的核心库之一就是`java.lang`包,它是最基础且最重要的包,包含了所有Java程序都会用到的一些基本类。这个包中包含了如异常处理、基本数据类型的包装类、数学运算、类和对象操作等核心功能。 异常处理是...
《初识iOS 6开发:探索iOS SDK源代码》是一本深入探讨苹果移动平台开发的专业书籍,主要针对iOS 6版本。这本书旨在帮助开发者全面理解iOS SDK的核心组件和API,通过源代码分析来提升开发技能。书中涵盖了从基础到...
在Java编程语言中,`java.lang.Throwable` 是所有错误(Error)和异常(Exception)的顶级父类,它是异常处理机制的基础。`Throwable` 类提供了封装异常信息的方法和属性,使得开发者能够对程序中出现的问题进行捕获...