Как извлечь в переменную типа int число 2 из JSON-ответа на языке JAVA ? (вместо 2 может быть любое многозначное число)
{
"response": 2
}
Без использования сторонних библиотек.
Ну можно так :)
String json = "{\"response\": 2}";
int number = Integer.valueOf(json.substring(13, 14));
Но почему бы не использовать GSON или Jackson?
Можно например использовать регулярки, но тоже выходит не очень универсально. Если структура ответа будет отличаться, придётся руками вырезать лишнее.
Пример:
public static void main(String[] args) {
List<String> tmp = new ArrayList<>();
tmp.add("{\"response\": 2}");
tmp.add("{\"response\": 0}");
tmp.add("{\"response\": null}");
tmp.add("{\"response\": 11}");
tmp.add("{\"response\": 111}");
tmp.add("{\"response\": 1111}");
tmp.add("{\"response\": 11111}");
tmp.add("{\"response\": -1111111}");
tmp.forEach(a -> {
System.out.println(parseJsonInt(a));
});
}
public static Integer parseJsonInt(String json) {
Pattern p = Pattern.compile("-?\\d+");
Matcher m = p.matcher(json);
while (m.find()) {
return Integer.valueOf(m.group());
}
return null;
}
Спасибо за ответы, нашел решение задачи:
Импортируем библиотеки:
import org.json.JSONException;
import org.json.JSONObject;
В нужном месте пишем код:
int myNumber;
try {
myNumber = response.json.getInt("response");
} catch (JSONException e) {
e.printStackTrace();
}
В итоге в переменной myNumber получаем наше число. Импортированные библиотеки уже входят "в комплект" AndroidStudio, дополнительно их не надо скачивать.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Мне нужно сделать авторизацию по номеру телефонаВ принципе с задачей я уже справился следующим образом:
Подскажите пожалуйста, пишу приложение на андроид и есть необходимость вытащить строку с определённым строковым значением которое задано...
Подскажите пожалуйста, как реализовать хранение массива в базе данных? Долго гуглил, но толком ничего не понялЕсли можно, то объясните подробно