fastjson使用遇到的问题

前端之家收集整理的这篇文章主要介绍了fastjson使用遇到的问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

有一个需求

一个controller需要接受一个参数这个参数是一个接口,因为有多种实现,并且这个接口的实现类中的某个字段是一个数组,里面的成员也是接口,有多种实现

A {

private List<B>

}

使用的是FastJsonHttpMessageConverter字段转换,


于是让前端传一个@type

这样解决了前端到后端的问题,能够正常反序列化

但是后端到数据库保存的时候 JSON.toJSONString(a,SerializerFeature.WriteClassName)

发现只有最外面有A对象的类型,而内部B类型没有写上@type

这样从数据库读取就会有问题

通过ParseProcess定制反序列化

看了文档的这部分,发现这只是对一些多余字段进行反序列化,比如如下的场景

你在一个类中只写了一个getX方法,但是没有定义一个字段x,(fastjson是根据get set方法序列化的)这时候反序列化就会有一个字段x

ExtraProcessor就是让你给这种字段定义名称和类型的

使用serializeUsing制定属性的序列化类

使用了一个注解加在List<B>上,可以自定义序列化,加个类型,但是还需要自己把整个list里面的内容给序列化了。比较麻烦


ValueFilter使用这个比上面那个更麻烦,需要自己一层一层的解析,返回自己需要的value

因为他只遍历最外面的属性,让你决定每个value怎么写。

原文链接:https://www.f2er.com/json/288689.html

猜你在找的Json相关文章