I have a JSONArray (org.json) like this:
[
{ \"a\": \"a\" },
{ \"b\": \"a\" },
{ \"c\": \"a\" },
{ \"d\": \"a\" },
{ \"e\": \"a\" },
{ \"
If you want to avoid using type casts, try:
private static final String JSON = "{\"arr\": [" +
"{\"z\": \"z\"}," +
"{\"a\": \"a\"}," +
"{\"b\": \"b\"}," +
"{\"c\": \"c\"}" +
"]}";
. . .
JSONObject jsonObject = new JSONObject(JSON);
JSONArray array = jsonObject.getJSONArray("arr");
JSONArray filtered = new JSONArray();
for (int i = 0; i < array.length(); i++) {
JSONObject sub = array.getJSONObject(i);
if (sub.has("a")) {
filtered.put(sub);
}
}
jsonObject.put("arr", filtered);
System.out.println(jsonObject.toString());
Result:
{"arr":[{"a":"a"}]}