今天项目中遇到Object转换Json的String报错,项目中用
com.alibaba.fastjson.JSON;
net.sf.json.JSON;
这两个包,Object转换String总是报write javaBean error, class com.ekyb.ybt.person.entity.to.core.MedicalReceiptTo, fieldName : 0错误:
Exception in thread "main" com.alibaba.fastjson.JSONException: write javaBean error, class com.ekyb.ybt.person.entity.to.core.MedicalReceiptTo, fieldName : 0
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:364)
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:111)
at com.alibaba.fastjson.serializer.ASMSerializer_1_SynchronousMultiCaseTo.write(Unknown Source)
at com.alibaba.fastjson.serializer.JSONSerializer.write(JSONSerializer.java:278)
at com.alibaba.fastjson.JSON.toJSONString(JSON.java:656)
at com.alibaba.fastjson.JSON.toJSONString(JSON.java:598)
at com.alibaba.fastjson.JSON.toJSONString(JSON.java:563)
at com.ekyb.ybt.person.inter.service.Test.main(Test.java:46)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.alibaba.fastjson.util.FieldInfo.get(FieldInfo.java:476)
at com.alibaba.fastjson.serializer.FieldSerializer.getPropertyValueDirect(FieldSerializer.java:137)
at com.alibaba.fastjson.serializer.JavaBeanSerializer.write(JavaBeanSerializer.java:213)
... 7 more
Caused by: java.lang.NullPointerException
at com.ekyb.ybt.person.entity.to.core.MedicalReceiptTo.getDaysInHospital(MedicalReceiptTo.java:84)
... 14 more
最后找找到问题是因为实体类中一个字段的类型是int改成了Integer,set方法改成了Integer,get方法未改成Integer类型,最终造成报以上错误信息