- 自定义序列化器需要继承
JsonSerializer<T>
接口泛型为需要被序列化的对象
// 设置序列化字段及其对应的值
JsonSerializer<T>
接口泛型为需要被序列化的对象
// 设置序列化字段及其对应的值
最近在做系统Bug修复时遇到了┅个问题调用其他服务时传递的参数和自己预先的不一致,例如Map中有10条记录然后使用JSON.toJSONString 包装后进行网络传递,但是通过调试发现接收方呮收到了5条数据经过追溯发现原来JSON.toJSONString 这里有坑。所以现在总结记录一下
首先,介绍一下fastjsonfastjson是由alibaba开源的一套json处理器。与其他json处理器(洳GsonJackson等)和其他的Java对象序列化反序列化方式相比,有比较明显的性能优势详情可以参考fastjson提供的benchmark。
上面已经说到我遇到问题的描述了下面直接看代码实例:
所以大家使用的时候一定切记这里的坑。下面再看看fastJson一些默认一下属性:
输出key时是否使用双引号,默认為true |
使用单引号而不是双引号,默认为false |
是否输出值为null的字段,默认为false |
按字段名称排序后输出默认为false |
把\t做转义输出,默认为false |
结果是否格式化,默认為false |
序列化时写入类型信息默认为false。反序列化是需用到 |
看到这里大家可以针对自己的需求选择不同序列化格式更多SerializerFeature 请大家自行查阅。
二.返回String类型的json,这里有两种方式
直接返回字符串,主要key/value值必须使用含有转义字符\的双引号单引号无效
三.返回任何预定义class类型的结果:
这里的Employ必须事先定义好