`

JsonMappingException: (was java.lang.NullPointerException)

    博客分类:
  • Java
阅读更多

使用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

 

 

1
0
分享到:
评论

相关推荐

    An internal error occurred during: java.lang.NullPointerException

    这个错误通常伴随着`java.lang.NullPointerException`异常,导致在启动Tomcat服务器时不断弹出错误对话框。这种情况下,尽管后台没有明显的错误日志,但频繁出现的警告窗口无疑会给开发工作带来不便。 ### 错误分析...

    java.lang.NullPointerException

    Java.lang.NullPointerException 解决方案与原因分析 Java.lang.NullPointerException 是 Java 语言中一种常见的异常,它发生在 Java 应用程序尝试使用 null 对象引用时。这种异常通常是由于程序员错误地认为对象...

    CRASH问题:java.lang.NullPointerException

    java.lang.NullPointerException: Attempt to invoke virtual method ‘void android.widget.ImageView.setImageResource(int)’ on a null object reference 今天在家练习ListView的时候,遇到一个java.lang....

    apple越狱备份数据

    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 ...

    Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullPointerException

    在上述问题中,开发者遇到了一个特定的错误:“javax.xml.transform.TransformerException: java.lang.NullPointerException”。这个错误通常表明在尝试执行XML转换时,某个对象没有被正确地初始化或者为null。我们...

    java.lang.NullPointerException的可能原因及处理.docx

    Java.lang.NullPointerException 的可能原因及处理 Java.lang.NullPointerException 是 Java 语言中最常见的异常之一,它的出现通常是由于编程不当或对象未被正确初始化所致。在本文中,我们将探讨 Java.lang....

    java 空指针异常(NullPointerException)

    - **使用Optional**:Java 8引入的`Optional<T>`可以帮助避免空指针异常,它提供了一种更安全的方式来封装可能为null的值。 - **避免返回null**:设计方法时尽量避免返回null,而应返回一个默认值或抛出异常。 ### ...

    在Java中异常分析

    - **异常路径**:`java.lang.Object -> java.lang.Throwable -> java.lang.Exception -> java.lang.RuntimeException -> java.lang.NullPointerException` - **解释**:当应用程序尝试使用未初始化的对象引用调用...

    绝望,上传文件失败。。遇到并解决java.lang.NullPointerException

    解决报错:java.lang.NullPointerException 解决方法:将文件的编码方式改为utf-8即可! 截图: 修改成功后:   代码: import os import json import re def json_to_html(i,cvenum): print('正在处理:'+...

    JBuider第六章:Java.lang包.rar

    在"JBuider第六章:Java.lang包"的教程中,你可能会深入学习到以下几个关键知识点: 1. **基础类和接口**:Java.lang包中的基础类包括`Object`、`String`、`Integer`、`Boolean`等,它们构成了Java类层次结构的基础...

    java.lang.NullPointerException出现的几种原因及解决方案

    java.lang.NullPointerException出现的几种原因及解决方案 java.lang.NullPointerException是Java中最常见的异常之一,它经常出现在日常编程中。了解java.lang.NullPointerException的原因和解决方案对于Java开发者...

    org.apache.commons.lang3.StringUtils.jar.rar

    Apache Commons Lang 是一个由 Apache 软件基金会开发的 Java 类库,它提供了一系列实用工具类,用于增强 JDK 内置的 String 类的功能。在给定的标题 "org.apache.commons.lang3.StringUtils.jar.rar" 中,我们可以...

    Sqoop通过Phoenix导hbase数据到hive

    出现此问题时使用: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插件后报java.lang.NullPointerException解决方案 #### 问题背景 在使用Myeclipse的过程中,不少用户遇到了一个较为常见的问题:安装Aptana插件之后,每次启动Myeclipse时都会出现`java....

    axis2 InvocationTargetException

    这可能是由于多种原因引起的,包括但不限于错误的服务接口调用、不兼容的数据类型、空指针异常(NullPointerException)或者在服务执行过程中遇到的任何未捕获的异常。 Apache Axis2是一个流行的开源Web服务引擎,...

    java.lang包

    Java语言的核心库之一就是`java.lang`包,它是最基础且最重要的包,包含了所有Java程序都会用到的一些基本类。这个包中包含了如异常处理、基本数据类型的包装类、数学运算、类和对象操作等核心功能。 异常处理是...

    Beginning iOS 6 Development Exploring the iOS SDK SourceCode

    《初识iOS 6开发:探索iOS SDK源代码》是一本深入探讨苹果移动平台开发的专业书籍,主要针对iOS 6版本。这本书旨在帮助开发者全面理解iOS SDK的核心组件和API,通过源代码分析来提升开发技能。书中涵盖了从基础到...

    解析Java中所有错误和异常的父类java.lang.Throwable

    在Java编程语言中,`java.lang.Throwable` 是所有错误(Error)和异常(Exception)的顶级父类,它是异常处理机制的基础。`Throwable` 类提供了封装异常信息的方法和属性,使得开发者能够对程序中出现的问题进行捕获...

Global site tag (gtag.js) - Google Analytics