2013-11-26 3 views
0

{"period": 5, "externs": {"lots": {"start": 1, "step": 0, "stop": 2} }}Парсер Java simple-json делает беспорядок с переменными

Я пытаюсь преобразовать приведенную выше строку JSON в JSONObject, используя simple-json. Я делаю это:

JSONObject obj = new JSONParser().parse(str); 

Проблема заключается в том, что анализатор каким-то образом изменить переменные прикажете:

{ "экстернов": { "много": { "стоп": 2, «старт ": 1," step ": 0}}," period ": 5}

И я хочу сохранить тот же порядок, что и в начале, любые подсказки?

+0

Мне не удалось найти Google SimpleJSON. Это [json-simple] (https://code.google.com/p/json-simple/)? – Nikolay

+1

См. Http://stackoverflow.com/questions/4515676/keep-the-order-of-the-json-keys-during-json-conversion-to-csv –

+0

Поскольку JSONObject позволяет вам() их в любой порядок это имеет значение? И, как указывает @Kevinbowersox, JSON является неупорядоченной коллекцией. – mttdbrd

ответ

3

Что вы хотите противопоставить объектам JSON: неупорядоченный список пар ключ/значение.

+0

Я не хотел нарушать закон, но если я буду использовать сто раз этот код, он вернет ту же строку в том же порядке, поэтому у него есть заказ, я просто хочу, чтобы он сохранял тот же порядок, что и в корневой строке JSON. – omarloren

+1

@omarloren, тот факт, что определенная реализация (simple-json, в вашем случае) анализирует ее каждый раз в том же порядке, не означает, что эта реализация делает это с конкретной целью. Скорее всего, возвращается HashMap, и в этом случае «порядок» (который я не могу назвать) основан на хеш-коде ключей. Также см. Этот вопрос и ответы: http://stackoverflow.com/questions/12938442/how-to-parse-from-json-to-map-with-json-simple-and-retain-key-order –

+0

@BartKiers Спасибо, я решить его с помощью ссылки – omarloren

Смежные вопросы