[英]Converting a .txt file to a .json file in java
我目前正在嘗試將多個.txt文件合並為一個大json文件。 我創建了一個函數,將txt文件作為參數,並將json文件寫入。 我正在利用Google的simple-json包來處理json對象的創建。
我遇到的主要問題是它已成功寫入json文件,但格式不正確。
例如,這是文本文件的一行
{"sensor_name":"Activity","timestamp":{"start_time":"Thu Jan 5 00:00:00 EST 2017","end_time":"Thu Jan 5 07:57:33 EST 2017"},"sensor_data":{"activity":"unknown","duration":28653345}}
我的方法是遍歷文件,將每一行轉換為JSONObject類型,然后將該JSONObject寫入文件。 該代碼已成功將JSONObject寫入文件,但未能正確格式化.json格式。
這是.json外觀的示例。
{"sensor_data":{"duration":41143403,"activity":"unknown"},"sensor_name":"Activity","timestamp":{"start_time":"Mon Mar 6 00:00:00 EST 2017","end_time":"Mon Mar 6 11:25:44 EST 2017"}}
{"sensor_data":{"duration":61245,"activity":"walking"},"sensor_name":"Activity","timestamp":{"start_time":"Mon Mar 6 11:25:44 EST 2017","end_time":"Mon Mar 6 11:26:45 EST 2017"}}
{
{
"sensor_data":{
"duration":41143403,
"activity":"unknown"
},
"sensor_name":"Activity",
"timestamp":{
"start_time":"Mon Mar 6 00:00:00 EST 2017",
"end_time":"Mon Mar 6 11:25:44 EST 2017"
},
},
{
"sensor_data":{
"duration":61245,
"activity":"walking"
},
"sensor_name":"Activity",
"timestamp":{
"start_time":"Mon Mar 6 11:25:44 EST 2017",
"end_time":"Mon Mar 6 11:26:45 EST 2017"
}
},
},
要記住的重要細節是在每個對象的末尾添加逗號。 解析器或.toString方法將無法處理它
/*
* method to set up a txt file as a json file
* each line in the text file is considered an object
* Args[]
* txtFile (File): text file that is not formatted in json
* fileToWriteTo (FileWriter): the file that the json will be written to
* returns
* none
* */
private void prepareForJson(File txtFile, FileWriter fileToWriteTo) {
// parser for reading strings
JSONParser parser = new JSONParser();
BufferedReader reader;
try {
reader = new BufferedReader((new FileReader(txtFile)));
String line = reader.readLine();
// convert that line to an json object
while (line != null) {
JSONObject lineConvertedToJson = (JSONObject) parser.parse(line);
// write to the file
fileToWriteTo.write(lineConvertedToJson.toJSONString());
// read the next line
line = reader.readLine();
}
} catch (Exception e){
e.getStackTrace();
}
}
關於如何將txt文件正確格式化為json文件的任何建議?
如果.txt文件包含相同的結構化json內容,則可以讀取每個.txt文件,使用開括號([)創建一個字符串,然后將內容放入字符串中,並在字符串后附加一個逗號(,)。 最后,將右括號(])括起來並將整個字符串寫入文件。 即使有多余的逗號,在json對象的結尾之后但在數組之前,也意味着在關閉方括號之前就可以了。 您可以在http://jsonviewer.stack.hu/網站中檢查json的全部內容。 這種方法不需要json解析。 但是,您仍然可以通過讀取每個文件並創建一個json對象數組,最后將其寫入文件來使用Json解析。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.