2017-08-23 38 views
1

serlvetコントローラのjson文字列を["A"、 "B"、 "C"、 "D"、 "E"]としています。jsonの文字列をJavaの文字列に変換する

この文字列をJava文字列配列に変換します。 Json文字列には[]も含まれます。その上

arr[0] = A 
arr[1] = B 

と:

出力はJavaのString配列でなければなりません。解析ソリューションをお勧めしますか?

答えて

3

あなたがそうのようにそれを変換することができ、ストリームを使用して:

String s = "[\"A\",\"B\",\"C\",\"D\",\"E\"]"; 
String[] arr = Arrays.stream(s.substring(1, s.length()-1).split(",")) 
       .map(e -> e.replaceAll("\"", "")) 
       .toArray(String[]::new); 

あなたはまた、(れる好ましい方法かもしれない)JSONライブラリを使用することができます。ジャクソンを使用した例:あなたの

String s = "[\"A\",\"B\",\"C\",\"D\",\"E\"]"; 
ObjectMapper mapper = new ObjectMapper(); 
String[] arr = mapper.readValue(s, String[].class); 
+2

解析JSONは、セキュリティの面で(特にWeb環境で)危険です。 [GSON](https://github.com/google/gson)、[Jackson](https://github.com/FasterXML/jackson)などのよく知られているJSONライブラリの1つを使用してください。 – jannis

+0

右@ jannis、jacksonとの例を追加 – baao

0
ArrayList<String> jsonStringToArray(String jsonString) throws JSONException { 

    ArrayList<String> stringArray = new ArrayList<String>(); 

    JSONArray jsonArray = new JSONArray(jsonString); 

    for (int i = 0; i < jsonArray.length(); i++) { 
     stringArray.add(jsonArray.getString(i)); 
    } 

    return stringArray; 
} 
関連する問題