fastjson 序列化Map< 自定义对象,自定义对象> 的时候,返回不是一个有效的JSON

ha5z0ras  于 2021-11-27  发布在  Java
关注(0)|答案(2)|浏览(491)

测试代码:
Map<Key,Value> map = new HashMap<>();
Key key = new Key();
Value value = new Value();
key.setF1("f1");
key.setF2("f2");
value.setV1("v1");
value.setV2("v2");
map.put(key,value);
String json = JSON.toJSONString(map);
System.out.println(json);
返回:
{{"f1":"f1","f2":"f2"}:{"v1":"v1","v2":"v2"}}

以上并不是一个有效的JSON。

通过jackson来序列化,会把key作为一个tostring处理,在fastjson中怎么弄?

cnjp1d6j

cnjp1d6j1#

这个bug很有意思。需要加个判断,如果是map里的key,直接tostring。
建议先自定义序列化。

qncylg1j

qncylg1j2#

因为我当前使用fastjson来作为网关层的序列化方式,所以没有办法知道所有业务层的领域,这边你说的自定义序列化应该怎么弄?能给个样例么?@kimmking

相关问题