Потребовалось мне недавно распарсить небольшой JSON, взятый со стороннего сайта. Естественно java и естественно не хотелось заморачиваться больше необходимого. И я пошел в интернеты искать что-то, что устроит меня по обоим этим параметрам. Первая строчка при поиске через Google – json-simple. Чтобы не противоречить самому себе и не усложнять задачу берем его и подключаем к проекту.

В кратком виде документ, получаемый мной от сервера выглядит так:

{
  "current_observation": {
   "weather":"Partly Cloudy",
   "temp_c":14,
   "relative_humidity":"72%",
  }
}

Все просто и понятно.

Корнем всех добр json-simple является класс JSONParser, являющийся, как не трудно догадаться, парсером JSON документа.

JSONParser jsonParser = new JSONParser();

Теперь парсим JSON методом parse (оригинально, не правда ли?) и сохраняем его в json-simple объект JSONObject.

JSONObject jsonObject = (JSONObject)jsonParser.parse(здесь_ваш_json);

Ищем вхождение current_observation

JSONObject jsonObserv = (JSONObject)jsonObject.get("current_observation");

и получаем такой же объект но только не для корня JSON, а уже для него.

Ну, а далее все тем же методом get() получаем значения ключей:

Double temperature = Double.parseDouble((jsonObserv.get("temp_c").toString()));
String weatherType = jsonObserv.get("weather").toString();
Integer humidity = Integer.parseInt(jsonObserv.get("relative_humidity").toString().replace("%", ""));

Вот, собственно, и все.

Конечно, это был самый простой способ парсинга. Можно было делать это через Map’ы с итераторами, но, как вы помните, я искал именно простоты и удобства на неизменяемых по структуре документах.

Если захочется посмотреть на примеры, то их есть у гугла.

Пользуйтесь на здоровье.