我从服务器
获取此信息"[\"abc\",\"def\",\"ghi\",\"jkl\",\"mno\",\"pqr\",\"stu\",\"vwx\",\"yz\"]"
上述文本不是数组,而是从服务器返回的字符串。
我想在ArrayList
中转换它有没有办法转换它?
答案 0 :(得分:2)
可以使用separator来完成,其中s是String:
List<String> myList = new ArrayList<String>(Arrays.asList(s.split(",")));
答案 1 :(得分:2)
手动解析该字符串并不是一个好主意。您应该使用一个为您解析JSON字符串的库。无论如何,给定的字符串不是有效的JSON字符串,就像其他人提到的那样,你应该从服务器请求JSON格式的数据。
如果您的服务器只返回这样,并且您需要手动解析,那么这将是一个解决方案。不是一个很好的,但它做的工作。
public static void main(String[] args) {
List<String> words = new ArrayList<>();
String string = "[\"abc\",\"def\",\"ghi\",\"jkl\",\"mno\",\"pqr\",\"stu\",\"vwx\",\"yz\"]";
String withoutBrackets = string.replaceAll("[\\[\\](){}]", ""); // Remove all the brackets
for (String word : withoutBrackets.split(",")) {
String singleWord = word.replaceAll("\"", "");
words.add(singleWord);
}
System.out.println(words);
}
答案 2 :(得分:1)
使用
修改字符串 str = str.replace ("[", "").replace ("]", "");
所以它与
相同 String str = "\"abc\",\"def\",\"ghi\",\"jkl\",\"mno\",\"pqr\",\"stu\",\"vwx\",\"yz\"";
然后使用
List<String> al = new ArrayList<String>(Arrays.asList(str.split(",")));
System.out.println(al);
答案 3 :(得分:1)
这将有效
String text = [\"abc\",\"def\",\"ghi\",\"jkl\",\"mno\",\"pqr\",\"stu\",\"vwx\",\"yz\"]";
text = text.replaceAll("[\\[\\](){}\"]", "");
List<String> list = Arrays.asList(text.split(","));
答案 4 :(得分:0)
这是将JSON String解析为ArrayList的正确方法:)
ArrayList<String> list = new ArrayList<String>();
String newArrayy ="[\"abc\",\"def\",\"ghi\",\"jkl\",\"mno\",\"pqr\",\"stu\",\"vwx\",\"yz\"]";
imagePath = newArrayy;
try {
JSONArray jsonArray = new JSONArray(imagePath);
if (null != jsonArray) {
Logger.LogError("imagePathhh", jsonArray.toString() + "" + jsonArray.length());
for (int i = 0; i < jsonArray.length(); i++) {
String value =(String) jsonArray.getString(i);
list.add(value); dataBaseCurdOperation.insertPaymentPath(jsonArray.getString(i));
}
} else {
}
} catch (Exception e) {
}
}
答案 5 :(得分:-1)
Sanjay在他的回答中指出它是正确的,它格式不正确。
如果您使用Gson库来解析JSON数据,那么以下方法也会处理这种格式。所以你没有必要做任何事情:)
new Gson().fromJson(your_server_response, Model.class);
另一种方法是使用java的内置方法
public String replaceAll (String regularExpression, String replacement)
答案 6 :(得分:-1)
尝试使用Gson。将其添加到您的gradle中
compile 'com.google.code.gson:gson:2.2.4'
希望这有帮助 -
String str = "[\"abc\",\"def\",\"ghi\",\"jkl\",\"mno\",\"pqr\",\"stu\",\"vwx\",\"yz\"]";
Gson gson=new Gson();
ArrayList<String> strings = gson.fromJson(str,new TypeToken<ArrayList<String>>(){}.getType());