Короче говоря: нет, потому что у JSON нет примитивного упорядоченного типа карты.
Первый шаг - определить требования вашего клиента в части декодирования строки JSON. Поскольку в спецификации JSON нет упорядоченного типа карты, вам придется выбрать представление для использования. Выбор, который вы сделаете, будет зависеть от требований вашего клиента к декодированию.
Если у вас есть полный контроль над декодированием строки JSON, вы можете просто закодировать объект в карту по порядку, используя библиотеку JSON, которая гарантированно сериализует вещи в порядке передаваемого итератора.
Если вы не можете этого гарантировать, вам следует самостоятельно представить свое представительство. Два простых примера:
Переменный список:
"[key1, value1, key2, value2]"
Список объектов ввода ключа / значения:
"[{key: key1, val:value1}, {key: key2, val:value2}]"
Как только вы придумали это представление, легко написать простую функцию, которая зацикливается на вашей SimpleOrderedMap. Например:
JSONArray jarray = new JSONArray();
for(Map.Entry e : simpleOrderedMap) {
jarray.put(e.key());
jarray.put(e.value());
}