Использование SpringBoot для предоставления ответа JSON для построения диаграмм с помощью AmChart - PullRequest
0 голосов
/ 06 мая 2020

У меня есть список поставщиков данных, созданный из потока. Теперь я разобрал его в JSON и хочу передать AmChart через вызов SpringBoot restful. Я не уверен, как я могу вызвать вызов для генерации ответа JSON из потока. Я сделал это так, как показано в приведенном ниже коде, но когда я вызываю URL-адрес в Postman, он генерирует нулевой ответ, а не имеет JSON. Может ли кто-нибудь сказать мне, как правильно разместить каждый раздел? Большое спасибо.

Тема

    public void run(Contract con) {
        m_client.eConnect("localhost", 7497, 123);
        final EReader reader = new EReader(m_client, m_signal);
        reader.start();
        Thread t1 = new Thread() {
            @Override
            public void run() {
                while (m_client.isConnected()) {
                    m_signal.waitForSignal();
                    try {
                        reader.processMsgs();
                    } catch (Exception e) {
                        System.out.println("Exception: " + e.getMessage());
                    }
                }
            }
        };

        t1.start();

        m_client.reqHistoricalData(1, con, 
                LocalDate.now().format(DateTimeFormatter.BASIC_ISO_DATE)+ " 16:00:00",
                "1 D", "1 min", "MIDPOINT", 1, 1, false, null);
        m_client.reqMktData(1, con, "", false, false, null);

        try {
            Thread.sleep(1000);

            Gson gson=new GsonBuilder().setPrettyPrinting().create();
            setOhlcJson(gson.toJson(allOHLC));

        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

JSON ожидаемый ответ:

[ 
 {
    "date": "20200506  10:08:00",
    "open": 1.0837,
    "high": 1.083785,
    "low": 1.083685,
    "close": 1.083775,
    "volume": -1
  },
  {
    "date": "20200506  10:09:00",
    "open": 1.083775,
    "high": 1.08395,
    "low": 1.083775,
    "close": 1.083935,
    "volume": -1
  },
  {
    "date": "20200506  10:10:00",
    "open": 1.083935,
    "high": 1.08399,
    "low": 1.083885,
    "close": 1.083905,
    "volume": -1
  },
  {
    "date": "20200506  10:11:00",
    "open": 1.083905,
    "high": 1.08393,
    "low": 1.083815,
    "close": 1.083845,
    "volume": -1
  },
  {
    "date": "20200506  10:12:00",
    "open": 1.083845,
    "high": 1.083845,
    "low": 1.08378,
    "close": 1.083815,
    "volume": -1
  },
  {
    "date": "20200506  10:13:00",
    "open": 1.083815,
    "high": 1.083815,
    "low": 1.083805,
    "close": 1.08381,
    "volume": -1
  }
]

Контроллер SpringBoot:

    @GetMapping("/candlestick")
    public static HashMap<String, Object> getAllPlot(String json) { 
        HashMap<String, Object> map = new HashMap<String, Object>();

        Test app = new Test();

        Contract con = new Contract();
        con.symbol("EUR");
        con.exchange("IDEALPRO");
        con.secType("CASH");
        con.currency("USD");

        app.run(con);
        String json = app.getOhlcJson();

        HashMap<String, Object> map = new HashMap<String, Object>();

        System.out.println("Here goes: "+ json);
        map.put("data", json);

        return map;
    }

AmCharts

      // Load data
      chart.dataSource.url = "http://localhost:8080/api/candlestick/";
      chart.dataSource.parser = new am4core.JSONParser;
      chart.dataSource.parser.options.emptyAs = 0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...