JSONArray jsonArray = new JSONArray();
jsonArray.put(1);
jsonArray.put("empty");
jsonArray.put(2);
jsonArray.put(3);
jsonArray.put("empty");
jsonArray.put(4);
jsonArray.put("empty");
假设我们有这个jsonArray
,有字符串empty
,如何删除它们而不留空隙?
答案 0 :(得分:1)
您可以使用以下代码:
for (int i = 0, len = jsonArray.length(); i < len; i++) {
JSONObject obj = jsonArray.getJSONObject(i);
String val = jsonArray.getJSONObject(i).getString();
if (val.equals("empty")) {
jsonArray.remove(i);
}
}
答案 1 :(得分:0)
您可以使用以下代码
JSONArray list = new JSONArray();
JSONArray jsonArray = new JSONArray(jsonstring);
int len = jsonArray.length();
if (jsonArray != null) {
for (int i=0;i<len;i++)
{
//Excluding the item string equal to "empty"
if (!"empty".equals(jsonArray.getString(i))
{
list.put(jsonArray.get(i));
}
}
//Now, list JSONArray has no empty string values
}
答案 2 :(得分:0)
看看this post。 创建一个列表,将元素的索引放在“空”字符串中,并遍历列表(带有“空”元素的列表),保存要删除的项的索引。之后,迭代预先保存的索引并使用
list.remove(position);
其中position将每个项的值设为delente(在索引列表中)。
答案 3 :(得分:0)
应该对Keerthi的代码进行一些修复:
for (int i = 0; i < jsonArray.length(); i++) {
if (jsonArray.get(i).equals("empty")) {
jsonArray.remove(i);
}
}
答案 4 :(得分:0)
将数组转换为字符串后,可以使用字符串替换,
JSONArray jsonArray = new JSONArray();
jsonArray.put(1);
jsonArray.put("empty");
jsonArray.put(2);
jsonArray.put(3);
jsonArray.put("empty");
jsonArray.put(4);
jsonArray.put("empty");
System.err.println(jsonArray);
String jsonString = jsonArray.toString();
String replacedString = jsonString.replaceAll("\"empty\",", "").replaceAll("\"empty\"", "");
jsonArray = new JSONArray(replacedString);
System.out.println(jsonArray);
替换前:
jsonArray is [1,"empty",2,3,"empty",4,"empty"]
替换后:
jsonArray is [1,2,3,4]