
序列化
首先需要说明的一点,HashMap 是不能保证遍历输出顺序的,如:
1 | Map<String, Object> map = new HashMap<>(); |
如果要保证按插入顺序遍历可以使用 LinkedHashMap,如果要对 Key 排序输出可以使用 TreeMap。
JSON.toJSONString(map)
方法序列化顺序是和 Map 本身的遍历顺序一致的:
1 | // 按插入顺序 |
所以 fastjson 的序列化顺序我们可以从 Map 本身入手。
反序列化
fastjson 的反序列化方法有个 TypeReference 参数,可以指定反序列化方式:
1 | String str = "{\"B\":2,\"A\":1,\"C\":3}"; |