原文地址(王开金的博客) https://blog.ailijie.top/archives/fastjson
# [fastjson默认是无序的](https://blog.ailijie.top/archives/fastjson)
不知道大家注意到没有,fastjson默认是无序的。我是在做参数加密的时候发现的。
JSONObject object = new JSONObject();
然后, put,put,put。
最后得到的结果和put的顺序不一致。
查看fastjson的源码:
![w_b_1](https://blog.ailijie.top/upload/2019/7/w_b_1-9c1e5a41014042d5a94e437e2e2cad77.png)
![w_b_2](https://blog.ailijie.top/upload/2019/7/w_b_2-6d74c522908d4fce807438cc680aecc5.png)
![w_b_3](https://blog.ailijie.top/upload/2019/7/w_b_3-b28b1fc13a0f45678eab7e6ed988928d.png)
可以看到构造函数根据ordered参数判断使用LinkedHashMap(有序)还是HashMap(无序)的。默认是无序的
因此,如果我们需要json是有序的话,我们可以在构造函数中传入ordered参数(true)实现。
未完待续,有问题请留言!