![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuIXY0N3Xu92Yp9CXzV2Zh1WavwVbvNmLllXZ0lmL3gjN5gzN3gjMxcHavw1LcpDc0RHaiojIsJye.png)
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
被序列化的類:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuIXY0N3Xu92Yp9CXzV2Zh1WavwVbvNmLllXZ0lmL3gjN5gzN3gjMxcHavw1LcpDc0RHaiojIsJye.png)
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;
}
測試方法:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuIXY0N3Xu92Yp9CXzV2Zh1WavwVbvNmLllXZ0lmL3gjN5gzN3gjMxcHavw1LcpDc0RHaiojIsJye.png)
@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) {
} catch (ioexception e) {
}
原因:student 類中成員變量age的屬性是integer(包裝類型),但是在對應的getter方法中,傳回的卻是基本類型int.
解決方法:
方式一:修改getter方法,傳回值改為包裝類型integer
方式二:
修改getter方法為:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuIXY0N3Xu92Yp9CXzV2Zh1WavwVbvNmLllXZ0lmL3gjN5gzN3gjMxcHavw1LcpDc0RHaiojIsJye.png)
@modelattribute("age")
if(age==null){
return 0;
參考:http://www.cnblogs.com/jimmy-c/p/3978799.html