将json字符串转换为java字符串数组

时间:2017-08-23 10:26:52

标签: java arrays json parsing

我得到一个json字符串为[" A"," B"," C"," D",&#34 ; E"]在serlvet控制器中。

我想将此字符串转换为Java字符串数组。 Json字符串还包括[]。

输出应该是Java String数组:

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

等等。你能建议一个解析解决方案吗?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分: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;
}