我有一个外部字符串,表示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);
答案 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#substring和String#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);
与其他图书馆一样简单。