У меня есть файл конфигурации, чтобы указать поля для извлечения из документа JSON, которые я затем хочу записать в файл CSV.Сортировка карты по заданному порядку ключей в Groovy
На данный момент я повторяю документ JSON и назначая указанные ключи и значения HashMap<String,Object>
, а затем добавляя их к ArrayList<HashMap<String,Object>>
. Кажется, что карта заполняется, поскольку информация считывается из документа JSON.
Как я могу сортировать свои карты в порядке, указанном в файле конфигурации? Я искал в Интернете, но только нашел примеры, как сортировать по алфавиту или численно, что не то, что я хочу.
Конфигурация: "useFields":["id","created","subject","status","priority"]
Токовый выход: ["created:16-Feb-2017, id:1234, priority:low, status:Foo, subject:Bar"]
Желаемый результат: ["id:1234, created:16-Feb-2017, subject:Bar, status:Foo, priority:low"]
Вместо HashMap, посмотрите на ListOrderedMap от общих -наборов: http://commons.apache.org/proper/commons-collections/apidocs/org/apache/commons/collections4/map/ListOrderedMap.html – bdkosher
Спасибо. Поэтому я предполагаю, что я должен перебирать настроенные поля, захватывать содержимое из JSON с помощью этого ключа, а затем добавлять его в ListOrderedMap? Я сделаю это! – Donglecow
Стандартная Java 'LinkedHashMap' обеспечивает ту же функциональность, И это класс, используемый литералами карт в Groovy. попробуйте то же, что и вы предложили выше, но просто запустите вторую карту с помощью '[:]'. Он должен заказывать ключи точно как вставленные. – BalRog