在Java中将文本文件转换为JSON?

在Java中将文本文件转换为JSON?,java,json,parsing,serialization,text,Java,Json,Parsing,Serialization,Text,我有这样一个文本文件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", "v

我有这样一个文本文件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"}}
在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"}'
Java中的解决方案包括:

BufferedReader reader=new BufferedReader(new InputStreamReader(getClass().getResourceAsStream(“/test.txt”));
弦线;
Map Map=newlinkedhashmap();
而((line=reader.readLine())!=null){
String[]tokens=line.split(“:”);
if(tokens!=null&&tokens.length>1){
字符串键=令牌[0];
字符串值=令牌[1];
if(key!=null&&value!=null){
map.put(key.trim(),value.trim());
}
}
}
字符串json=newObjectMapper().writeValueAsString(映射);
System.out.println(json);

共享您迄今为止尝试过的代码。我使用了split()函数,但这有点混淆。我可以给出一个提示,如果您使用split函数,按冒号拆分,并从两侧修剪,您将获得值,在arraylist对象或hashmap中逐行放置,然后创建json。
{"name":"Cherry.API.DEV","version2":"Test","uuid":"0492389a-43243-ewr234342-343d","xx":"{@{fdsfsdfsf}","lastSession":"0.0","activeOK":"True","learn":"ok"}
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);