Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
kovatelj
7 лет назад

Пишу приложение на Java. Часть 2


Доброго времени суток уважаемые подписчики, а также те кто заинтересовался темой и заглянул ко мне :)

Продолжаю свои посты о написании моего приложения на 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

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


Спасибо всем за внимание, как говорится, продолжение следует! Не забывайте подписываться на мой блог!

1
32.181 GOLOS
На Golos с October 2016
Комментарии (5)
Сортировать по:
Сначала старые