簡體   English   中英

在Java中將.txt文件轉換為.json文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM