Java中JSONObject读取数据重新排序问题

845 阅读1分钟

JSONObject.put数据后,会有个排序动作。 如:

"params": [{
    			"key": "arg0",
    			"value": "*act*null*act*"
    		},
    		{
    			"key": "arg1",
    			"value": "*space*5a56tq08xf*space*"
    		}, {
    			"key": "arg2",
    			"value": "*ba_lr*null*ba_lr*"
    		}
    	]

取出来的结果是:

{"arg2":"*ba_lr* *ba_lr*","arg1":"*space*5a56tq08xf*space*","arg0":"*act* *act*"}

根因是JsonObject内部是用Hashmap来存储的,输出是按key的排序来的,如果要让JsonObject按固定顺序(put的顺序)排列,可以修改JsonObject的定义HashMap改为LinkedHashMap。

JSONObject jsonObj =new JSONObject(newLinkedHashMap());

这样定义的JSONObject对象就能满足顺序不变的要求了。

参考文献: blog.csdn.net/Butterfly_r…