JSONObject:为什么JSONObject改变属性的顺序

Paw*_*wan 13 java json

我试图使用JSON对象构造一个JSON字符串

我希望以这种方式构造JSON字符串

{
    "Level": "3",
    "Name": "testLogger",
    "IPADDRESS": "testMachiene",
    "Message": "hiiiiiiiiii",
    "TimeStamp": "test12345678"
}
Run Code Online (Sandbox Code Playgroud)

这是我的简单程序

package com;

import org.json.JSONObject;

public class Teste {

    public static void main(String args[]) throws Exception {

        int loglevel = 3;
        String loggerName = "testLogger";
        String machieneName = "testMachiene";
        String timeStamp = "test12345678";
        String message = "hiiiiiiiiii";

        JSONObject obj = new JSONObject();

        obj.put("TimeStamp", message);
        obj.put("Message", timeStamp);
        obj.put("IPADDRESS", machieneName);
        obj.put("Name", loggerName);
        obj.put("Level", loglevel);

        System.out.println(obj.toString());

    }

}
Run Code Online (Sandbox Code Playgroud)

它正在构建这种方式

{
    "Name": "testLogger",
    "TimeStamp": "hiiiiiiiiii",
    "Message": "test12345678",
    "Level": 3,
    "IPADDRESS": "testMachiene"
}
Run Code Online (Sandbox Code Playgroud)

我的问题是它为什么改变属性的顺序

我可以订购我想要的订单吗?

sha*_*net 33

请参阅此处的答案:JSON顺序混乱

您不能也不应该依赖JSON对象中元素的排序.

来自http://www.json.org/的JSON规范:

"对象是一组无序的名称/值对"

因此,JSON库可以根据需要重新排列元素的顺序.这不是一个错误.