将表示数组的JSON转换为String []

时间:2018-05-14 12:28:54

标签: java arrays json

我有一个外部字符串,表示JSON中的数组,如下所示:

["abc", "xyz", "123"]

我想将其解析为String[]并迭代它。

到目前为止,我只讨论了如何使用它:

// value = incoming String
String[] contentUrlList = new String[] { value };
for (int i = 0; i < contentUrlList.length; i++) {
    String contentUri = contentUrlList[i];
}

我也可以打印字符串数组的长度,但它是1而不是3

System.out.println(contentUrlList.length);

1 个答案:

答案 0 :(得分:3)

如果输入保持那么简单(特别是, s本身内没有String),您只需删除第一个和最后一个字符,然后按,分割:

String input = "[\"abc\", \"xyz\", \"123\"]"

// Remove the [ and ]
input = input.substring(1, input.length() - 1);
String[] words = input.split(", ");
// Remove the quotation marks
for (int i = 0; i < words.length; i++) {
    words[i] = words[i].substring(1, words[i].length() - 1);
}

请参阅String#substringString#split

迭代数组并打印每个元素:

for (String word : words) {
    System.out.println(word);
}

输出:

abc
xyz
123

如果它变得更复杂,我建议使用一些JSON库。例如GSON

Gson gson = new Gson();
String[] words = gson.fromJson(input, String[].class);

与其他图书馆一样简单。