Если вы знаете все имена полей, вы можете сделать что-то вроде этого:
String elemets = "first name abc last name def ID 12345";
JSONObject jsonObject = new JSONObject();
if (elements.contains("first name")) {
String key = "first name";
elements = elements.replace(key, "").trim();
String value = elements.substring(0, elements.indexOf(" ")).trim();
elements = elements.replace(value, " ").trim();
jsonObject.put(key, value);
/*do it for every key, or better, do a method to do it*/
}
Я знаю, что это действительно плохой код, но он работает и его легко понять.
JSONObject isиз org.json вы можете получить зависимость здесь
Этот метод работает, только если значение не имеет пробелов, если значение и ключ имеют пробелы, единственное, что вы можете сделать, это получить первый ключ, чемПеретаскивать весь текст между первым ключом и следующим ключом, но также и в этом случае возникает проблема, если один ключ меняет позицию или вам не хватает, вы получите значение ошибки или ключ ошибки.Вы должны написать алгоритм, который является позиционно-инвариантным.Я предлагаю сохранить список всех ключей и проверить минимальное расстояние от первого ключа и всех других ключей, чтобы понять, какой второй ключ.Важно удалить обработанный ключ и значение из строки, чтобы работать в начале строки