Мне нужно преобразовать следующую строку в json-формат.Как преобразовать следующую строку в Json с помощью Java?
Ниже представлен входной сигнал, а также ожидаемый выход для справки.
Вход:
Employee Driver Report - EDR
--------------------------------
Employee Nbr: 123480 Employee Type: DI Cat: UPL
Driver License: PP3P30 Plate: ROWP
Part Number: 1006096
Выход:
{
"Employee Nbr": "123480",
"Employee Type": "DI",
"Cat": "UPL",
"Driver License": "PP3P30",
"Plate": "ROWP",
"Part Number": "1006096",
}
Пример кода:
Map<String, String> keyValueMap = new HashMap<String, String>();
String[] lines = rawText.split(System.getProperty("line.separator"));
for(String line: lines) {
.......
keyValueMap.put(keyAndValues[i], keyAndValues[i + 1]);
}
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(keyValueMap);
Не могли бы вы помочь мне о том, как решить эту проблему?
Заранее спасибо.
В вашей спецификации немного отсутствует; например, как мы решаем, что это «Employee Nbr»: «123480», «Тип сотрудника»: «DI», «а не' »Employee Nbr»: «123480 Employee», «Type»: «DI», '? Предполагая правильно отформатированные файлы и только одно слово для каждого значения, я бы разделил пробелы, собирая слова до тех пор, пока не ударил один конец в ':', используйте коллекцию в качестве ключа, затем возьмите следующее слово в качестве значения и повторите до тех пор, пока все потребляется. –
Предполагая, что оно отформатировано. Извините, что забудьте пропустить одну вещь ... Кроме того, она также должна учитывать пространство. Например, если следующее число приходит в одной строке. Номер Emp: First Class: должен возвращать json как {Emp Number:, First Class}. прямо сейчас он ошибочно приходит как «Emp Number»: «Первый» на выходе json –
Спасибо за дополнительную информацию о спецификации; что делает вещи немного сложнее в работе с регулярным выражением, хотя, вероятно, это может быть сделано (и если это проблема домашней работы, вы можете потерять очки за то, что слишком умны или захватили ее из Интернета!); Если мы вернемся к расщеплению пробелами, если при сборе ключей, если вы его получите, но больше слов осталось на строке, вы добавите текущий ключ в конец предыдущего значения. –