Интересно, как можно написать свой JSONArray
, чтобы его JSONObject
'ы можно было пробегать через цикл for-each?
В Java это сделать довольно просто:
Создать декоратор над JSONArray:
public class ExtendedJSONArray implements Iterable<JSONObject> {
private final JSONArray jsonArray;
public ExtendedJSONArray(JSONArray jsonArray) {
this.jsonArray = jsonArray;
}
@Override
public Iterator<JSONObject> iterator() {
return new ExtendedJSONArrayIterator();
}
private class ExtendedJSONArrayIterator implements Iterator<JSONObject> {
private int iterator;
@Override
public boolean hasNext() {
return iterator < jsonArray.length();
}
@Override
public JSONObject next() {
JSONObject jsonObject = jsonArray.getJSONObject(iterator);
iterator++;
return jsonObject;
}
@Override
public void remove() {
jsonArray.remove(iterator);
}
}
}
Далее можно использовать так:
JSONArray jsonArray = new JSONArray();
jsonArray.put(new JSONObject("{\"a\":5,\"b\":10}"));
jsonArray.put(new JSONObject("{\"a\":15,\"b\":20}"));
jsonArray.put(new JSONObject("{\"a\":25,\"b\":30}"));
for (JSONObject jsonObject: new ExtendedJSONArray(jsonArray)) {
System.out.println(jsonObject.toString(2));
}
На Kotlin проще всего JSONArray перевести в Array и гонять любыми циклами.
Либо так по индексу:
val jsonArray = JSONArray()
for (i in Array(jsonArray.length()) { i -> i }) {
val item = jsonArray.getJSONObject(i)
// ...
}
Либо так:
val jsonArray = JSONArray()
for (item in Array(jsonArray.length()) { i -> jsonArray.getJSONObject(i) }) {
// ...
}
Соответсвенно, все функциональные примочки (forEach, filter, first, ...) тоже будут доступны.
Необходимо постоянно обновлять список чатов в ListView и этот список пользователь может постоянно прокручиватьОбновление делаю в
Каталог товаров в магазине слетел каким то чудом и выдает что то вроде этого
Ребята, короче, такие дела уже по-моему задавал тут вопрос этотНе могу вертикально отцентровать элемент (в хроме норм, а в IE и firefox - нет )
Как выровнять элементы в строках? Дело в том, что заголовки разного размера и все плыветПоломал всю голову, кроме как переделать все в css grid - сделать...