在Java中,将JSON数组转换为Java数组通常可以通过以下几种方式实现:
1. 使用第三方库:
Jackson:
// 添加Jackson依赖项// Maven:////com.fasterxml.jackson.core // jackson-databind//2.13.0 //// 解析JSON字符串ObjectMapper objectMapper = new ObjectMapper();JsonNode jsonNode = objectMapper.readTree("[\"apple\", \"banana\", \"cherry\"]");// 获取JSON数组并转换为Java数组ArrayNode arrayNode = (ArrayNode) jsonNode;String[] javaArray = arrayNode.toArray(new String);
Gson:
// 添加Gson依赖项// Maven:////com.google.code.gson // gson//2.8.9 //// 解析JSON字符串Gson gson = new Gson();Type listType = new TypeToken>(){}.getType();
ListjavaList = gson.fromJson(jsonArrayStr, listType);
2. 使用Java 8的流API手动解析JSON数组:
// 假设jsonArrayStr是一个有效的JSON数组字符串String jsonArrayStr = "[\"apple\", \"banana\", \"cherry\"]";// 使用正则表达式匹配并分割字符串Pattern pattern = Pattern.compile("\\s*\\[\\s*([^\\[\\]\\s]*)\\s*\\]");Matcher matcher = pattern.matcher(jsonArrayStr);ListjavaList = new ArrayList<>(); while (matcher.find()) {javaList.add(matcher.group(1));}
3. 使用org.json库:
// 添加org.json依赖项// Maven:////org.json // json////// 解析JSON字符串JSONArray jsonArray = new JSONArray(jsonArrayStr);// 获取JSON数组并转换为Java数组String[] javaArray = new String[jsonArray.length()];for (int i = 0; i < jsonArray.length(); i++) {javaArray[i] = jsonArray.getString(i);}

