Доброго времени суток уважаемые подписчики, а также те кто заинтересовался темой и заглянул ко мне :)
Продолжаю свои посты о написании моего приложения на Java.
В этой части я покажу как я парсил полученный от блокэксплорера JSON. Для парсинга JSON я воспользовался библиотекой JSON-simple. Основной разбор JSON происходит в классе jsonParser, в методе jsonread. Который получает на вход полученный ответ от блокэксплорера. Далее происходит парсинг JSON с преобразованием его в объект (надеюсь я правильно пишу :)).
/**
* Created by Kovatelj on 21.06.17.
*/
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import java.lang.*;
public class jsonParser {
private static JSONObject result;
public JSONObject getResult() {
return result;
}
public void jsonread(String jsonString) {
JSONParser parser = new JSONParser();
try {
Object object = parser.parse(jsonString);
JSONObject jsonObject = (JSONObject) object;
result = (JSONObject) jsonObject.get("result");
/* String result = (String) results.get("balance");
Double res = Double.parseDouble(result);*/
//System.out.println(result);
} catch(ParseException e) {
e.printStackTrace();
}
}
}
И после этого объект передается в основной класс, где я уже вытаскиваю из него нужные данные:
jsonParser resultParser = new jsonParser();
resultParser.jsonread(query.getResultQuery());
JSONObject jsonObject = resultParser.getResult();
String balanceJSON = (String) jsonObject.get("balance");
Float balance = Float.parseFloat(balanceJSON);
String firstactionJSON = (String) jsonObject.get("firstaction");
Long firstaction = Long.parseLong(firstactionJSON);
String dateFirstAction = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").format(new Date (firstaction*1000L));
String lastactionJSON = (String) jsonObject.get("lastaction");
Long lastaction = Long.parseLong(lastactionJSON);
String dateLastAction = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").format(new Date (lastaction*1000L));
System.out.println("Баланс кошелька: " + balance + " POST");
System.out.println("Первая активность кошелька: " + dateFirstAction);
System.out.println("Последняя активность кошелька: " + dateLastAction);
Ну вот в принципе и все, что касается парсинга JSON.
Я несколько дней промучался с получением даты и выводе ее в приемлемом виде. Точнее я получал ее из JSON в виде UNIX timestamp, но после преобразования получал 1970 год. После очередных долгих изысканий в интеренет, я наконец догадался, что получаю дату в секундах :) Тогда как Date принимает данные в милисекундах :) И вот написав в функцию преобразования
firstaction*1000L, вместо firstaction
я наконец получил правильное значение. Возможно это кому-то пригодится, ибо я нашел упоминание только на английском языке, в котором я не очень силен :)
Спасибо всем за внимание, как говорится, продолжение следует! Не забывайте подписываться на мой блог!
@kovatelj, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующих категориях:
Зачем там ного пустых строк читать не удобно же....
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
losos, ekaterinka, archibald116, dimarss, kot, vik, vadbars, dany2323, amikphoto, vasilisapor2, guepetto, semasping, gryph0n, arystarch, bobrik, vika-teplo, nims55, myhardmoney, bag, sergiusduke
Поэтому я тоже проголосовал за него!
Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!
Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"
В начале лучше добавить ссылку на первый пост.
Используете ли Вы в разработке какую-либо систему контроля версий?
про ссылку вначале честно говоря забыл. добавить сейчас не поздно ведь еще?
нет, не использую. я еще начинающий :) мне уже подсказали, что не нужно было использовать тег открытый-код.