简体   繁体   English

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

[英]convert json string to java string array

I am getting a json string as ["A","B","C","D","E"] in serlvet controller. 我在serlvet控制器中得到一个json字符串为[“A”,“B”,“C”,“D”,“E”]。

I want to convert this string into a Java string array. 我想将此字符串转换为Java字符串数组。 The Json string also includes []. Json字符串还包括[]。

output should be a Java String array: 输出应该是Java String数组:

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

and so on. 等等。 Could you please suggest a parsing solution? 你能建议一个解析解决方案吗?

Using a stream you could convert it like so: 使用流你可以像这样转换它:

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);

You could also use a JSON library (which might be the prefered way). 您还可以使用JSON库(可能是首选方式)。 For example using Jackson: 例如使用杰克逊:

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;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM