org.json.simple.JSONObject类扩展了java.util.HashMap,这就是为什么在输出中看到这个属性的顺序的原因. setPrettyPrinting()方法不会更改顺序.您可以从源代码中删除它,没有任何更改.如果要保留顺序,可以使用java.util.LinkedHashMap而不是org.json.simple.JSONObject.
简单的例子:
import java.util.LinkedHashMap;
import java.util.Map;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonProgram {
public static void main(String[] args) throws Exception {
Map myJSon = new LinkedHashMap();
myJSon.put("zzz", 1);
myJSon.put("aaa", 1);
Gson gson = new GsonBuilder().setPrettyPrinting().create();
System.out.println(gson.toJson(myJSon));
}
}