paulwong

          以流的方式解釋巨大JSON文件

          https://www.ngdata.com/parsing-a-large-json-file-efficiently-and-easily/


          https://sites.google.com/site/gson/streaming

          http://www.acuriousanimal.com/2015/10/23/reading-json-file-in-stream-mode-with-gson.html

              public static void main(String [] args) throws IOException {
                  String filePath = "C:big-data.json";
                  FileInputStream in = new FileInputStream(new File(filePath));
                  JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8"));
                  Gson gson = new GsonBuilder().create();
          //        reader.beginObject();
          //        reader.nextName();
                  reader.beginObject();//跳過"{"
                  while (reader.hasNext()) {
                      // Read data into object model
                      JsonToken jsonToken = reader.peek();
                      if(jsonToken.equals(JsonToken.NAME)) {
                          String name = reader.nextName();
                          if(name.equalsIgnoreCase("SUMMARY")) {
          //                    reader.beginObject();
                              Summary summary = gson.fromJson(reader, Summary.class);
                              logger.info(summary.toString());
                              break;
          //                    reader.endObject();//跳過"}"
                          }
                      } /*else if(jsonToken.equals(JsonToken.BEGIN_OBJECT)) {
                          reader.beginObject();
                      } else if(jsonToken.equals(JsonToken.STRING)) {
                          logger.info(reader.nextString());
                      } else if(jsonToken.equals(JsonToken.NUMBER)) {
                          logger.info(reader.nextInt() + "");
                      } else if(jsonToken.equals(JsonToken.END_OBJECT)) {
                          reader.endObject();
                      } 
          */
          //            Summary summary = gson.fromJson(reader, Summary.class);
          //            break;
                  }
                  reader.close();
              }

          posted on 2019-05-03 15:22 paulwong 閱讀(525) 評論(0)  編輯  收藏 所屬分類: JSON

          主站蜘蛛池模板: 阿克苏市| 胶南市| 东源县| 古交市| 德惠市| 曲周县| 澄江县| 阿拉尔市| 界首市| 石门县| 习水县| 盐津县| 板桥市| 定安县| 马关县| 镇原县| 湟中县| 泾源县| 大英县| 罗山县| 澄迈县| 伊川县| 信阳市| 临颍县| 文成县| 宁武县| 正宁县| 慈利县| 塘沽区| 丰都县| 松江区| 江孜县| 开封市| 广宗县| 祥云县| 玉屏| 宝丰县| 辰溪县| 盐城市| 焦作市| 大埔区|