我需要將以下字符串轉換爲json格式。如何使用Java將以下字符串轉換爲Json?
下面是輸入以及預期輸出供參考。
輸入:
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」 '?假設格式正確的文件和每個值只有一個單詞,我會用空格拆分,收集單詞,直到以':'結尾,使用集合作爲鍵,然後將下一個單詞作爲值,並重復直到一切都被消耗了。 –
假設它已更正格式。對不起,忘了錯過一件事..也必須考慮空間以及..例如,如果以下單線行商號:第一類:應返回json作爲{商號::頭等艙}。現在它錯誤地作爲「Emp Number」出現:json輸出中的「第一個」 –
感謝您提供其他規範信息;這使得使用正則表達式處理起來有些困難,儘管它可能可以完成(如果這是一個家庭作業問題,那麼您可能因爲太聰明或從互聯網上抓取而失去點!);如果我們回到用空格分割,如果收集鍵時,如果你得到一個,但在行上沒有剩餘單詞,則將當前鍵追加到前一個值的末尾。 –