自己挖坑自己跳 之JsonMappingException: ,was java.lang.NullPointerException

  在Web项目中,我们经常会设计一些与界面相对应的JavaBean作为Entity,而为了兼容前台传入的空值,有些字段我们会用包装类型而不是基本类型。可是往往我的Entity已经设计完成,很多时候我们会在原来的Entity基础上修改字段返回值类型,而不是删去重写。于是问题就来了,一些大意的同学仅仅把属性的基本类型(如long)改为包装类型(如Long),而并没有将setter/getter的类型一起修改。

  这种情况会报错,而且报的错经常会让人摸不着头脑。下面列举了一种情况,是利用com.fasterxml.jackson将Entity序列化为Json字符串时出现上述疏忽报的错误:

com.fasterxml.jackson.databind.JsonMappingException: (was java.lang.NullPointerException) (through reference chain: Student["sid"])

  我的Entity如下:

public class Student {
        private Long sid;
        private String name;

        public long getSid() {
                return sid;
        }
        public void setSid(long sid) {
                this.sid = sid;
        }
        public String getName() {
                return name;
        }
        public void setName(String name) {
                this.name = name;
        }
}

  这种Entity的写法会在不同场合报不同的错误,本文仅列出这一种情况,后续遇到再补充。

  共勉!

Edit by Jimmy

2014.09.18