关于fastjson版本报错write javaBean error, fastjson version 1.2.62, fieldName : 8

一.定位问题

  1. 按f12查看请求包,status为500说明为服务端错误。

  2. 在编译器中查看,fastjson报错。

  3. 在servlet中只有序列化(java对象转json字符串)时用到了fastjson。

二.分析问题

引入:JavaBean 应该实现 Serializable 接口,以便其状态可以在网络上传输或持久化到磁盘。进一步证明,序列化出错。

write javaBean error, fastjson version 1.2.62, class com.itheima.pojo.Brand, fieldName : 8

翻译:JavaBean出错,JavaBean实现的fastjson版本为1.2.62,Brand,字段名 : 8

3个逗号,层层定位,最终定位到字段8。众所周知字段的概念通常在数据库中出现,打开数据库发现第8行的字段为null。然而在序列化时默认是不支持字段为空的。

三.解决方法

  1. 手动修改含有null值的列。

  2. 在序列化时,设置:序列化特性.忽略非字段的获取(SerializerFeature.IgnoreNonFieldGetter)

 //加工为json 序列化
 String jsonString = JSON.toJSONString(brands, SerializerFeature.IgnoreNonFieldGetter);

猜你喜欢

转载自blog.csdn.net/m0_67574793/article/details/134641197