【发布时间】:2017-08-23 10:26:51
【问题描述】:
我在 serlvet 控制器中得到一个 ["A","B","C","D","E"] 的 json 字符串。
我想将此字符串转换为 Java 字符串数组。 Json 字符串还包括 []。
输出应该是一个Java字符串数组:
arr[0] = A
arr[1] = B
等等。您能否提出一个解析解决方案?
【问题讨论】:
我在 serlvet 控制器中得到一个 ["A","B","C","D","E"] 的 json 字符串。
我想将此字符串转换为 Java 字符串数组。 Json 字符串还包括 []。
输出应该是一个Java字符串数组:
arr[0] = A
arr[1] = B
等等。您能否提出一个解析解决方案?
【问题讨论】:
使用流你可以像这样转换它:
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);
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;
}
【讨论】: