【问题标题】:Text file to JSON in Java? [duplicate]Java中的文本文件到JSON? [复制]
【发布时间】:2020-05-28 10:42:48
【问题描述】:

我有一个像这样的文本文件 demo.txt

name        : Cherry.API.DEV
version2    : Test
uuid        : 0492389a-43243-ewr234342-343d
xx          : {@{fdsfsdfsf}
lastSession : 0.0
activeOK    : True 
learn       : ok

我想读取 demo.txt 文件,然后像这样转换为 JSON

{"name":"Cherry.API.CI", "variableName":{"module":"Cherry","ID" : "0492389a-43243-ewr234342-343d","systemdebug": "True"}}

【问题讨论】:

  • 分享你目前尝试过的代码。
  • 我使用了 split() 函数,但这变得令人困惑
  • 我可以给个提示,如果你使用split函数,用冒号分割,从两边修剪,你会得到值,逐行放入arraylist对象或hashmap中,然后创建json.

标签: java json parsing serialization text


【解决方案1】:

在 Groovy 中可能是:

import groovy.json.JsonOutput

def str = """name        : Cherry.API.DEV
version2    : Test
uuid        : 0492389a-43243-ewr234342-343d
xx          : {@{fdsfsdfsf}
lastSession : 0.0
activeOK    : True
learn       : ok
"""

def map = [:]
str.splitEachLine(~':', { List<String> list ->
    map.put(list[0].trim(), list[1].trim())
})

def json = JsonOutput.toJson(map)
println json

assert json == '{"name":"Cherry.API.DEV","version2":"Test","uuid":"0492389a-43243-ewr234342-343d","xx":"{@{fdsfsdfsf}","lastSession":"0.0","activeOK":"True","learn":"ok"}'

打印出来:

{"name":"Cherry.API.DEV","version2":"Test","uuid":"0492389a-43243-ewr234342-343d","xx":"{@{fdsfsdfsf}","lastSession":"0.0","activeOK":"True","learn":"ok"}

jackson 的 Java 解决方案:

BufferedReader reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/test.txt")));
String line;
Map<String, String> map = new LinkedHashMap<>();
while ((line = reader.readLine()) != null) {
    String[] tokens = line.split(":");
    if (tokens != null && tokens.length > 1) {
        String key = tokens[0];
        String value = tokens[1];
        if (key != null && value != null) {
            map.put(key.trim(), value.trim());
        }
    }
}
String json = new ObjectMapper().writeValueAsString(map);
System.out.println(json);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-25
    • 2012-10-21
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    相关资源
    最近更新 更多