public <T> void appendList( String key, Iterable<T> list, JsonEncoder<T> encoder, Criteria<T> criteria) throws JSONException { JSONArray array = new JSONArray(); object.put(key, array); for (T t : list) { if (criteria != null) { if (criteria.isMeet(t)) { JsonBuffer jsonBuffer = new JsonBuffer(); encoder.encode(t, jsonBuffer); array.put(jsonBuffer.getJsonObject()); } } else { JsonBuffer jsonBuffer = new JsonBuffer(); encoder.encode(t, jsonBuffer); array.put(jsonBuffer.getJsonObject()); } } }