java - 在java中将.txt文件转换为.json文件

标签 java json

我目前正在尝试将多个 .txt 文件合并到一个大 json 文件中。我创建了一个函数,它接受 txt 文件作为参数,并且它也会写入 json 文件。我正在利用 google 的 simple-json 包来处理 json 对象的创建。

我遇到的主要问题是它成功写入 json 文件,但格式不正确。

例如,这是文本文件的一行

{"sensor_name":"Activity ","timestamp":{"start_time":"2017 年美国东部时间 1 月 5 日星期四 00:00:00","end_time":"2017 年美国东部时间 1 月 5 日星期四 07:57:33"},"Sensor_data":{"Activity ":"未知","持续时间":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 解析。

关于java - 在java中将.txt文件转换为.json文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57937673/

相关文章:

php - 尝试在 PHP 中通过 JSON 发送 URL 时遇到问题

java - ArrayList优化

Java ByteBuffer "put"方法 - 防止缓冲区溢出

java - 我得到了 javax.net.ssl.SSLPeerUnverifiedException : peer not authenticated on my JUnit test

java - @NamedNativeQuery + @SqlResultSetMapping + @ConstructorResult + @ColumnResult 导致 classCastException

json - 如何使用go语言从google map api获取经纬度?

javascript - 如何比较不包括在单独数组中指定的字段的两个 JSON 对象?( postman 脚本)

javascript - 动态下拉Jsp

java - 如何使用 java 与 websphere mq 之间传输/接收文件

java - 将 Json 转换为包含类型变量(某些子类)的 Java 对象