2
私は以下のようにjsonオブジェクトを作成する必要があります。 applicationFilesがjson配列であり、同じコードを記述していますが、spkConfには入れ子になったjsonオブジェクトが含まれています。Javaで入れ子になった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"
}}}
お知らせspkConfig中括弧の前に二重引用符やスラッシュを必要とする一方で、出力の下
{"job": {
"applicationFiles": [
"hdfs:///user/test.properties",
"hdfs:///user/test1.json"
],
spkConf": "{
\"spk.home\":\"/usr/hdp/current/spk-client\",
\"spk.master.url\":\"yarn-cluster\"
}}}
を与えます。 助けてもらえますか?
値をlineとString [] params @Vikas chandraに出力してみてください – Sreemat