首页 > 解决方案 > Gson没有在java中解析JSON

问题描述

我正在尝试使用 GSON 库解析包含 JSON 信息的字符串。我从一个工作正常的 HttpRequest 中得到这个字符串(我可以在控制台中打印它并且工作正常)。问题似乎来自这一行:

JsonObject jsonObject = new Gson().fromJson(inputLine,JsonObject.class).getAsJsonObject();

顺便说一句,字符串在“inputLine”中。编译器在线程“AWT-EventQueue-0”java.lang.NoClassDefFoundError: com/google/gson/Gson 中说异常并指向该行。这是我正在尝试阅读的 JSON,如果这有帮助的话:

{
   "meta":{
      "symbol": "AAPL",
      "interval": "1min",
      "currency": "USD",
      "exchange_timezone": "America/New_York",
      "exchange": "NASDAQ",
      "type": "Common Stock"
   },
   "values":[
      {
         "datetime":"2019-08-09 15:59:00",
         "open":"200.93999",
         "high":"201.25599",
         "low":"200.85199",
         "close":"201.05000",
         "volume":"472287"
      },
      {
         "datetime":"2019-08-09 15:58:00",
         "open":"201.02999",
         "high":"201.13000",
         "low":"200.83999",
         "close":"200.93499",
         "volume":"209854"
      },
      {
         "datetime":"2019-08-09 15:57:00",
         "open":"201.02000",
         "high":"201.07000",
         "low":"200.91000",
         "close":"201.02000",
         "volume":"149032"
      },
      {
         "datetime":"2019-08-09 15:56:00",
         "open":"201.11999",
         "high":"201.25999",
         "low":"201.03340",
         "close":"201.03340",
         "volume":"178892"
      },
      {
         "datetime":"2019-08-09 15:55:00",
         "open":"201.75999",
         "high":"201.75999",
         "low":"201.07000",
         "close":"201.13000",
         "volume":"372886"
      },
      {...}
   ],
   "status":"ok"
}

我想要数组“值”中每个对象的接近值。我试过了,但是,再次,无法弄清楚这里的错误是什么

   XYSeries jsonSerie = new XYSeries("Tiempo");
        JsonObject jsonObject = new Gson().fromJson(inputLine,JsonObject.class).getAsJsonObject();
        JsonArray jsonArr = jsonObject.getAsJsonArray("values");
        int i = 0;
        do{
            JsonObject jObj = jsonArr.get(i).getAsJsonObject();
            JsonElement jElem = jObj.get("close");
            BigDecimal close = jElem.getAsBigDecimal();
            jsonSerie.add(i, close);
            i++;
        }
        while(i < jsonArr.size());
        oDataSet = new XYSeriesCollection();
        oDataSet.addSeries(jsonSerie);

关于如何做到这一点或错误在哪里的任何想法?(哦,我也在使用 JFreeChart 和 JCommon 库来绘制这个值,这就是 XY 东西的来源)

标签: javajsonparsinggson

解决方案


推荐阅读