gpt4 book ai didi

java - 在java中创建嵌套的json对象

转载 作者:行者123 更新时间:2023-12-01 22:27:22 25 4
gpt4 key购买 nike

我需要创建如下所示的 json 对象。如果您注意到 applicationFiles 是 json 数组,并且我已经为其编写了代码,但 spkConf 包含嵌套的 json 对象。

JsonObjectBuilder outer = Json.createObjectBuilder(); String returnString = "";
File file = new File(fileName);
try (Scanner scanner = new Scanner(file);) {
JsonObjectBuilder jsonObject = Json.createObjectBuilder();
while(scanner.hasNextLine()){
String line = scanner.nextLine();
if(line !=null && line.trim().startsWith("spark.")){
String param = line.trim();
String [] params = param.split("=");
if(params.length == 2){
jsonObject.add(params[0], params[1]);
}

}
}
returnString = jsonObject.build().toString();
}catch(IOException e){
e.printStackTrace();
}outer.add("spkConfig", returnString)

给出以下输出

{"job": {
"applicationFiles": [
"hdfs:///user/test.properties",
"hdfs:///user/test1.json"
],
spkConf": "{
\"spk.home\":\"/usr/hdp/current/spk-client\",
\"spk.master.url\":\"yarn-cluster\"
}}}

当我需要

{"job": {
"applicationFiles": [
"hdfs:///user/test.properties",
"hdfs:///user/test1.json"
],
spkConf": {
"spk.home":"/usr/hdp/current/spk-client",
"spk.master.url":"yarn-cluster"
}}}

注意 spkConfig 大括号之前没有双引号和斜杠。有人可以帮忙吗?

最佳答案

您不应将 json 结构添加为字符串 (returnString)。请尝试:

JsonObjectBuilder outer = Json.createObjectBuilder();
JsonObjectBuilder jsonObject = Json.createObjectBuilder();
File file = new File(fileName);
try (Scanner scanner = new Scanner(file);) {
while(scanner.hasNextLine()){
String line = scanner.nextLine();
if(line !=null && line.trim().startsWith("spark.")){
String param = line.trim();
String [] params = param.split("=");
if(params.length == 2){
jsonObject.add(params[0], params[1]);
}

}
}
}catch(IOException e){
e.printStackTrace();
}
outer.add("spkConfig", jsonObject.build());

关于java - 在java中创建嵌套的json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41790683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com