天天看點

JsonMappingException: (was java.lang.NullPointerException)

JsonMappingException: (was java.lang.NullPointerException)

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  

被序列化的類:

JsonMappingException: (was java.lang.NullPointerException)

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;  

}  

測試方法:

JsonMappingException: (was java.lang.NullPointerException)

@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方法為:

JsonMappingException: (was java.lang.NullPointerException)

@modelattribute("age")  

        if(age==null){  

            return 0;  

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