Делаю String jsonStr = response.json(), чтобы получить данные с ApiVk В итоге я получаю
String jsonStr = "{\"response\":{\"count\":254,\"items\":[{\"last_name\":\"Екимов\",\"id\":325813465,\"first_name\":\"Артём\"},{\"last_name\":\"Виноградов\",\"id\":448209461,\"first_name\":\"Дэнчик\"},{\"last_name\":\"Κонстантинов\",\"id\":444441827,\"first_name\":\"Κонстантин\"}]}}";
Как мне распарсить строчку, чтобы получить массив значений id
JSONObject jsonObj = new JSONObject(jsonStr);
name = jsonObj.getString("id");выдает исключение
first = jsonObj.getJSONObject("items").getString("id");
выдает исключение nullpointer
Тебе надо разобраться со структурой. Советую сайт https://jsoneditoronline.org
{
"response": {
"count": 254,
"items": [
{
"last_name": "Екимов",
"id": 325813465,
"first_name": "Артём"
},
{
"last_name": "Виноградов",
"id": 448209461,
"first_name": "Дэнчик"
},
{
"last_name": "Κонстантинов",
"id": 444441827,
"first_name": "Κонстантин"
}
]
}
}
Из этого видно, что для начала надо обратиться к корневому элементу response, потом к массиву items. В итоге нужно как то так
name = jsonObj.getJSONObject("response").getJSONArray("items")[0].getString("id")
regex'ом можно
вот, смотри: regex101.com
вот сам regex (без экранирования): {\s+"last_name":\s+"?([^"]+)"?,\s+"id":\s+(\d+),\s+"first_name":\s+"?([^"]+)"?\s+}
выполняешь метод парсинга, в результате получишь класс с совпадениями
last_name - [1]
id - [2]
first_name - [3]
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости