18

JSONオブジェクトを使用してJSON文字列を構築しようとしていました

JSON文字列をこのように構築したい

{
    "Level": "3",
    "Name": "testLogger",
    "IPADDRESS": "testMachiene",
    "Message": "hiiiiiiiiii",
    "TimeStamp": "test12345678"
}

これはそうするための私の簡単なプログラムです

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());

    }

}

そして、それはこのように構築していました

{
    "Name": "testLogger",
    "TimeStamp": "hiiiiiiiiii",
    "Message": "test12345678",
    "Level": 3,
    "IPADDRESS": "testMachiene"
}

私の質問は、なぜ属性の順序を変更するのかということです

好きな順番でお願いできますか??

4

3 に答える 3

4

他の人が述べたように、 JSONObject は同じ順序を維持することは想定されていません。

ただし、アイテムを注文したい場合は、それを自分で実装し、LinkedHashMapをクラスのアイテムのコンテナーとして使用できます。

于 2013-06-21T07:12:05.490 に答える
2

その JSONObject は、実際にはキーから値へのマップです。固有の順序はありません。順序付けが必要な場合は、JSONArray を調べることをお勧めします (ただし、キー -> 値はなく、値のみが含まれます)。

于 2013-06-21T07:03:18.937 に答える