JsonMappingException: (was java.lang.NullPointerException)

使用jackson 序列化Java对象的时候报异常:

Java代码  

  1. com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException) (through reference chain: com.chanjet.gov.Student["age"])  
  2.     at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:218)  
  3.     at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:183)  
  4.     at com.fasterxml.jackson.databind.ser.std.StdSerializer.wrapAndThrow(StdSerializer.java:155)  
  5.     at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:512)  
  6.     at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:117)  
  7.     at  

 

被序列化的类:

Java代码  

  1. package com.chanjet.gov;  
  2.   
  3. import org.springframework.web.bind.annotation.ModelAttribute;  
  4.   
  5. import com.fasterxml.jackson.annotation.JsonAutoDetect;  
  6. import com.fasterxml.jackson.annotation.JsonIgnoreProperties;  
  7. import com.fasterxml.jackson.annotation.JsonInclude;  
  8.   
  9. /** 
  10.  * Created by JasonQin on 2015/7/1. 
  11.  */  
  12. @JsonAutoDetect  
  13. @JsonIgnoreProperties(ignoreUnknown = true)  
  14. @JsonInclude(JsonInclude.Include.NON_NULL)  
  15. public class Student  {  
  16.   
  17.     public Student() {  
  18.     }  
  19.   
  20.     /*** 
  21.      * 用户数显示名称 
  22.      */  
  23.     public String name;  
  24.     /*** 
  25.      * 每用户的免费存储空间 
  26.      */  
  27.     public Integer age;  
  28.   
  29.   
  30.     @ModelAttribute("name")  
  31.     public String getName() {  
  32.         return name;  
  33.     }  
  34.   
  35.     @ModelAttribute("age")  
  36.     public int getAge() {  
  37.         return age;  
  38.     }  
  39. }  

测试方法:

Java代码  

  1. @Test  
  2.     public void test_PolicyInfo(){  
  3.         ObjectMapper mapper = new ObjectMapper();  
  4.         Student s=new Student();  
  5.           
  6.         try {  
  7.             System.out.println(mapper.writeValueAsString(s));  
  8.         } catch (JsonGenerationException e) {  
  9.             e.printStackTrace();  
  10.         } catch (JsonMappingException e) {  
  11.             e.printStackTrace();  
  12.         } catch (IOException e) {  
  13.             e.printStackTrace();  
  14.         }  
  15.     }  

  原因:Student 类中成员变量age的属性是Integer(包装类型),但是在对应的getter方法中,返回的却是基本类型int.

解决方法:

方式一:修改getter方法,返回值改为包装类型Integer

方式二:

修改getter方法为:

Java代码  

  1. @ModelAttribute("age")  
  2.     public int getAge() {  
  3.         if(age==null){  
  4.             return 0;  
  5.         }  
  6.         return age;  
  7.     }  

 

参考:http://www.cnblogs.com/jimmy-c/p/3978799.html

 

时间: 2024-08-03 12:07:35

JsonMappingException: (was java.lang.NullPointerException)的相关文章

java.lang.NullPointerException: Expected timestamp

java.lang.NullPointerException: Expected timestamp in the Flume event headers, but it was null java.lang.NullPointerException: Expected timestamp in the Flume event headers, but it was null 使用flume的时候出现的问题. sink是hdfs,然后使用目录自动生成功能.出现如题的错误,看官网文档说的是需要在每

JSP页面中出现的一个异常:org.apache.jasper.JasperException: java.lang.NullPointerException

先把出现的异常情况贴出来吧: type Exception report messagejava.lang.NullPointerException descriptionThe server encountered an internal error that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: java.lang.NullPointerException

图片-svn更新后,jsp页面报java.lang.NullPointerException

问题描述 svn更新后,jsp页面报java.lang.NullPointerException 请大神指点 谢谢 解决方案 svn一般要先更新再提交,有报错的话就先修改错误 解决方案二: 空指针异常,看看你同组的人有没有修改过东西,没有全部上传

java web java.lang.NullPointerException

问题描述 java web java.lang.NullPointerException 严重: Servlet.service() for servlet [selectServlet] in context with path [/Exercise] threw exceptionjava.lang.NullPointerException at DB.DataBaseConnection.selectOperation1(DataBaseConnection.java:45) at Ser

异常-java.lang.NullPointerException

问题描述 java.lang.NullPointerException 请问下这种异常怎么解决呢 解决方案 空指针错误.这种错误一般是由于: 1.使用的类对象为null 2.指针越界 3.配置文件配置路径有错,无法找到路径 解决方案二: SDK和ADT为22.6.2版本 工程为4.4.2 新建了一个工程 ,代码编写好后并没有报错,在安装支持后报出如下错误: java.lang.RuntimeException: Unable to start activity ComponentInfo{com

android开发-java.lang.NullPointerException 在学习armenu时候遇到这问题的

问题描述 java.lang.NullPointerException 在学习armenu时候遇到这问题的 java.lang.NullPointerException at com.administrator_example.icm_arcmenu.view.ArcMenu.layoutButton(ArcMenu.java:137) 这句:mCButton.setOnClickListener(this); at com.administrator_example.icm_arcmenu.v

ndroid-新人求助 java.lang.NullPointerException

问题描述 新人求助 java.lang.NullPointerException 04-26 21:42:40.039: E/AndroidRuntime(1125): FATAL EXCEPTION: main 04-26 21:42:40.039: E/AndroidRuntime(1125): Process: com.example.remotecontrol, PID: 1125 04-26 21:42:40.039: E/AndroidRuntime(1125): java.lang

sharepreferences-安卓:java.lang.NullPointerException:

问题描述 安卓:java.lang.NullPointerException: logcat显示错误: FATAL EXCEPTION: main Process: org.droidplanner, PID: 21924 java.lang.RuntimeException: Unable to resume activity {org.droidplanner/org.droidplanner.android.activities.FlightActivity}: java.lang.Nul

HashMap中java.lang.NullPointerException异常问题

问题描述 //添加根结点Iterator<String>Iter=resultMap.keySet().iterator();inti=0;while(Iter.hasNext()){i++;System.out.println(i);StringscCode=Iter.next();if(resultMap.get(Iter.next())!=null){StringscParent=resultMap.get(Iter.next()).toString();System.out.print