基本的に、文字列配列である "references"というキーを含むJSON応答をサーバーから取得しています。以前の参照が見つからないときは空になるか、以前の参照でいっぱいになります。JavaのJSON StringからStringの配列を埋め込む方法
ここで私はサーバーからの応答です。この時点で
私がやっている何{"code":100,
"name":"3PVxkvfKyUiBg3LN24ek23KceGg6350KSkLZ.html",
"file":{
"author":"[email protected]",
"idx":"xihav-zupak-zonyf-bedid-cyvun-fahac-mykud",
"name":"html_file",
"references":[
"relec-toluz",
"rosah-vyzyh",
"rikik-cinom"
]
}
}
は非常に良いではないですが、私は最初、私は新しい文字列配列の作成参照の数を決定するために参考文献の内容を解析し、その中にそれぞれの値を入れます。しかし、私はそれを行うための適切な方法があるかどうか疑問に思っています。
if(file.has("references")){
String s = file.get("references").toString();
int counter =0;
//determine the amount of elements (check if the references does not finish with ','
if(s.length() > 2 && s.charAt(s.length()-2) != ','){
counter++;
System.out.println(s);
for(int i=0 ; i < s.length(); i++){ if(s.charAt(i) == ',') counter++;}
}else {
counter++;
for(int i = 0; i < s.length() -2; i++){ if(s.charAt(i) == ',') counter++;}
}
JsonArray referencesList = new Gson().fromJson(s, JsonArray.class);
if(s != null && s.length()>2 && counter !=0){
System.out.println("1");
references = new String[counter];
for(int i = 0 ; i < references.length ; i++){ references[i] = referencesList.get(i).getAsString();}
}else references = new String[]{"No previous references found"};
}
コードは私の必要性のためにうまく機能していますが、より多くの「適切に」それを行うには、他の方法があります:
ここで本当にコードの素敵な作品ではありません、私が書いたコードは、ですか?
あなたは 'JSONParser'を使用していない理由は?チェックアウト:https://stackoverflow.com/questions/43724937/how-to-parse-json-string-to-java-object-with-jackson – yogidilip
@yogidilipよく私は私のプロジェクト全体でGoogleのGSONを使用しています。私はそれが使いやすいことを発見しました。それが理由です。 – retArdos
次に、Gsonの 'JsonParser'の使用を検討してください。解析をGsonに任せ、結果の 'JsonElement'だけを処理します。 – Ishnark