Парсим json с помощью json-simple

Потребовалось мне недавно распарсить небольшой 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’ы с итераторами, но, как вы помните, я искал именно простоты и удобства на неизменяемых по структуре документах.
Если захочется посмотреть на примеры, то их есть у гугла.
Пользуйтесь на здоровье.

Установка Oracle XE 11g на Ubuntu под VirtualBox

Вчера половину дня потратил на то, чтобы запустить СУБД Oracle XE 11g на Ubuntu в VirtualBox. Тысячи нервных клеток головного мозга были уничтожены, но задача, наконец, выполнена. И чтобы с этим смогли справиться люди, не имеющие в багаже английского языка я решил написать в этот блог кратенькую инструкцию.
Итак:
Что нам понадобится
VirtualBox – http://www.virtualbox.org/wiki/Downloads
Ubuntu – http://www.ubuntu.com/download/ubuntu/download (берем x64, так как только для нее есть Express версия Oracle)
Oracle Database Express Edition 11g Release 2 – http://www.oracle.com/technetwork/database/express-edition/downloads/index.html
Oracle SQL Developer – http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html (не хотим же мы постоянно работать с SQL строками. GUI сильно упрощает жизнь) Читать далее

OhYeah!

Недавно написал новую программу под Android, про которую не мог сказать здесь, так как в то время narsereg.ru лежал в дауне, а потом, как-то руки не доходили. И вот появилось немного времени и энтузиазма для написания небольшого поста.

Ну, для начала, тема программы – это приложение, которое напоминает вам о теме разговора с человеком, который был недоступен до этого. Например, он или вы находитесь в полете или в страшно дорогом роуминге и не можете поговорить с партнером по бизнесу или любым другим человеком. В программе делается заметка, которая отражается на экране в тот момент, когда устанавливается связь с нужным абонентом. Звонок может быть, как исходящий, так и входящий.

Все очень просто – никаких заморочек. Запускаете программу -> Выбираете контакт -> Вводите тему для разговора -> Сохраняете. При начале разговора с нужным абонентом получаете сообщение на экране.

Программа называется OhYeah!, как вскрик, когда англоязычанин вспоминает о чем-то – аналог российского АхДа! А вот и ссыль на нее – https://market.android.com/details?id=com.narsereg.ohyeah

А для любителей QR:

Pragmatic Unit Testing in Java with JUnit

Только что закончил чтение книги Pragmatic Unit Testing in Java with JUnit Эндрю Ханта и Дэвида Томаса.

Давно пора было немного систематизировать знания по тестированию, чем я, собственно, и занялся. То, что до этого хранилось у меня в голове по тестированию было, порой, странно и запутано. И, несмотря на всю элементарность работы с JUnit, редко применялось в достаточных количествах и в нужных местах. Со времен посмотрю, изменится ли что-нибудь. Надеюсь, что да.

Теперь перейдем к самой книге.

Язык книги прост и очень легко читаем. Несмотря на совершенно не родной мне английский (правда учу я его довольно давно) книга читается с одной попытки. Всего несколько раз мне требовалось возвращаться в начало абзаца или предложения, чтобы перечитать. Все остальное было понятно. Конечно, я вынес из этой книги (как и из любой другой) список слов для очередной стопки флеш-карт, но, а это немаловажно для русскоговорящей аудитории, язык прост и доступен.

Собственно JUnit в книге посвящено не так чтобы много места. По большей части это все-таки книга по основам тестирования. И это, пожалуй, минус. Ну что им стоило больше времени потратить на обучение конкретно JUnit? Просто когда ты берешь в руки книгу на обложке которой красуются слова JUnit и Java, то именно на них ты и ориентируешься, так как они вынесены в заголовок.

То есть, книга то отличная, хорошо написанная, но не про то, на что мы все рассчитывали.

Про теорию тестирования, подающуюся в Pragmatic Unit Testing in Java with JUnit никаких ругательных слов я сказать не могу. Эта часть описана более, чем полностью и в терминах, усваивающихся великолепно. После прочтения вы поймете как, что, где и почему нужно тестировать (а тестировать нужно абсолютно все, везде, всегда и всеми возможными способами).

В сухом остатке: книга отличная, но слишком мало отведено теме конкретной реализации тестирования. Читайте Pragmatic Unit Testing + javadocs и будет вам счастье.

Введение

Этот блог появился благодаря случайному стечению обстоятельств, приведших к тому, что однажды я взял в руки клавиатуру и не расставался с ней с тех пор.

За долгое время своего обучения и работы я перепробовал и Pascal/Delphi, и C++, и C#, и даже VBA (здесь упоминаются только более-менее серьезные опыты с языками). Но в итоге остановился на, сначала,  Java, а спустя некоторое время и JavaFx. Причина выбора до безобразия проста – Java – самый сильный язык последнего десятилетия, а появившийся не так давно  JavaFX (ранее JavaFX Script) позволил Java, наконец, выйти из чисто корпоративных решений в массы.

Известный факт, что продвижение Java на десктопы, в отличии от .NET, сдерживается просто кошмарной реализацией интерфейса для локальных приложений. Понятно, что за все надо платить, и за кроссплатформенность тоже, но лучше от этого никогда не становилось.

И вот, наконец, в мае 2007 года на конференции JavaOne было анонсировано то, о чем так долго думали разработчики – технология, позволяющая привязать Java к профессиональному интерфейсу. Автором языка стал Крис Оливер.

После непродолжительного молчания (с учетом важности события) Sun выложила JavaFX плагины к NetBeans 6.1 с версиями 0.X, а затем и версию 1.0. Это случилось 4 декабря 2008 года.

Далее были версии 1.1 и 1.2, каждая стала абсолютно революционной, как для тех, кто про эту технологию узнавал впервые, так и для тех, кто уже к тому времени с ней работал. Причина этого в том, что с каждой версией язык меняется кардинально и просто поменять компилятор не получится. Впрочем – это болезнь любого достаточно молодого языка.

Вот и кончилась моя первая запись в этот блог.

Теперь о будущем: В этом блоге будут выкладываться новости из мира Java/JavaFX, о которых я решу упомянуть, мои собственные записи о языке и технологии, с примерами и описанием, как положено, а также переводы тех статей, которые меня заинтересуют.

Русскоязычных источников знаний по JavaFX крайне мало и я, все же, надеюсь, что мой блог станет одним из наиболее известных, для чего я приложу все необходимые усилия.

Визуально блог будет меняться и очень сильно. То что сейчас на экране – “моя первая картина”.