public void loadData() {
    SimpleDateFormat formatIn = new SimpleDateFormat("MMMM d, yyyy");
    SimpleDateFormat formatOut = new SimpleDateFormat("MM/d/yy");
    ObjectMapper objectMapper = new ObjectMapper();
    JsonFactory jsonFactory = new JsonFactory();
    Random random = new Random();
    try {
      JsonParser jsonParserBlog =
          jsonFactory.createParser(getResources().openRawResource(R.raw.blog));
      List<Blog> entries =
          objectMapper.readValue(jsonParserBlog, new TypeReference<List<Blog>>() {});
      JsonParser jsonParserEmoji =
          jsonFactory.createParser(getResources().openRawResource(R.raw.emoji));
      List<String> emojies =
          objectMapper.readValue(jsonParserEmoji, new TypeReference<List<String>>() {});

      int numEmoji = emojies.size();
      for (Blog blog : entries) {
        blog.setEmoji(emojies.get(random.nextInt(numEmoji)));
        try {
          blog.setDate(formatOut.format(formatIn.parse(blog.getDate())));
        } catch (ParseException e) {
          e.printStackTrace();
        }
      }
      Realm realm = Realm.getInstance(this);
      realm.beginTransaction();
      realm.copyToRealm(entries);
      realm.commitTransaction();
      realm.close();

    } catch (Exception e) {
      throw new IllegalStateException("Could not load blog data.");
    }
  }
  // And then one more test just for Bytes-based symbol table
  public void testByteBasedSymbolTable() throws Exception {
    // combination of short, medium1/2, long names...
    final String JSON =
        aposToQuotes(
            "{'abc':1, 'abc\\u0000':2, '\\u0000abc':3, "
                // then some medium
                + "'abc123':4,'abcd1234':5,"
                + "'abcd1234a':6,'abcd1234abcd':7,"
                + "'abcd1234abcd1':8"
                + "}");

    JsonFactory f = new JsonFactory();
    JsonParser p = f.createParser(JSON.getBytes("UTF-8"));
    ByteQuadsCanonicalizer symbols = _findSymbols(p);
    assertEquals(0, symbols.size());
    _streamThrough(p);
    assertEquals(8, symbols.size());
    p.close();

    // and, for fun, try again
    p = f.createParser(JSON.getBytes("UTF-8"));
    _streamThrough(p);
    symbols = _findSymbols(p);
    assertEquals(8, symbols.size());
    p.close();

    p = f.createParser(JSON.getBytes("UTF-8"));
    _streamThrough(p);
    symbols = _findSymbols(p);
    assertEquals(8, symbols.size());
    p.close();
  }
  /** @see com.amazonaws.http.HttpResponseHandler#handle(com.amazonaws.http.HttpResponse) */
  public AmazonWebServiceResponse<T> handle(HttpResponse response) throws Exception {
    log.trace("Parsing service response JSON");

    String CRC32Checksum = response.getHeaders().get("x-amz-crc32");
    CRC32ChecksumCalculatingInputStream crc32ChecksumInputStream = null;

    JsonParser jsonParser = null;

    if (!needsConnectionLeftOpen) {
      if (CRC32Checksum != null) {
        crc32ChecksumInputStream = new CRC32ChecksumCalculatingInputStream(response.getContent());
        jsonParser = jsonFactory.createParser(crc32ChecksumInputStream);
      } else {
        jsonParser = jsonFactory.createParser(response.getContent());
      }
    }

    try {
      AmazonWebServiceResponse<T> awsResponse = new AmazonWebServiceResponse<T>();
      JsonUnmarshallerContext unmarshallerContext =
          new JsonUnmarshallerContext(jsonParser, response);
      registerAdditionalMetadataExpressions(unmarshallerContext);

      T result = responseUnmarshaller.unmarshall(unmarshallerContext);

      if (CRC32Checksum != null) {
        long serverSideCRC = Long.parseLong(CRC32Checksum);
        long clientSideCRC = crc32ChecksumInputStream.getCRC32Checksum();
        if (clientSideCRC != serverSideCRC) {
          throw new CRC32MismatchException(
              "Client calculated crc32 checksum didn't match that calculated by server side");
        }
      }

      awsResponse.setResult(result);

      Map<String, String> metadata = unmarshallerContext.getMetadata();
      metadata.put(ResponseMetadata.AWS_REQUEST_ID, response.getHeaders().get("x-amzn-RequestId"));
      awsResponse.setResponseMetadata(new ResponseMetadata(metadata));

      log.trace("Done parsing service response");
      return awsResponse;
    } finally {
      if (!needsConnectionLeftOpen) {
        try {
          jsonParser.close();
        } catch (IOException e) {
          log.warn("Error closing json parser", e);
        }
      }
    }
  }
  // [core#191]: similarly, but for "short" symbols:
  public void testShortNameCollisionsViaParser() throws Exception {
    JsonFactory f = new JsonFactory();
    String json = _shortDoc191();
    JsonParser p;

    // First: ensure that char-based is fine
    p = f.createParser(json);
    while (p.nextToken() != null) {}
    p.close();

    // and then that byte-based
    p = f.createParser(json.getBytes("UTF-8"));
    while (p.nextToken() != null) {}
    p.close();
  }
  /** @param bioID */
  private boolean setBioID(String bioID) {
    boolean toRet = false;
    try {
      JsonFactory factory = new JsonFactory();
      JsonParser jparser = factory.createParser(bioID);

      String key = "";
      // Get StartObject for JSON, after first {
      jparser.nextToken();
      while (jparser.nextToken() != JsonToken.END_OBJECT) {
        key = jparser.getText();

        if (key.equals("id")) {
          key = jparser.nextTextValue();

          // Set bioID in Experiment
          selExp.setBioID(key);

          toRet = true;
        } else {
          jparser.skipChildren();
        }
      }
      jparser.close();

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

    return toRet;
  }
  public void testUtf8Issue462() throws Exception {
    ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    IOContext ioc = new IOContext(new BufferRecycler(), bytes, true);
    JsonGenerator gen = new UTF8JsonGenerator(ioc, 0, null, bytes);
    String str = "Natuurlijk is alles gelukt en weer een tevreden klant\uD83D\uDE04";
    int length = 4000 - 38;

    for (int i = 1; i <= length; ++i) {
      gen.writeNumber(1);
    }
    gen.writeString(str);
    gen.flush();
    gen.close();

    // Also verify it's parsable?
    JsonFactory f = new JsonFactory();
    JsonParser p = f.createParser(bytes.toByteArray());
    for (int i = 1; i <= length; ++i) {
      assertToken(JsonToken.VALUE_NUMBER_INT, p.nextToken());
      assertEquals(1, p.getIntValue());
    }
    assertToken(JsonToken.VALUE_STRING, p.nextToken());
    assertEquals(str, p.getText());
    assertNull(p.nextToken());
    p.close();
  }
  /**
   * Constructs a configuration file from a past configuration file that was saved to the disk.
   *
   * @param fileName - the path to the file on disk
   * @throws IOException - if there is any problem reading the file
   */
  public Configuration(final String fileName) throws IOException {
    final JsonFactory jf = new JsonFactory();
    final JsonParser jp = jf.createParser(new File(fileName));
    jp.nextToken();

    while (jp.nextToken() != JsonToken.END_OBJECT) {
      final String fieldName = jp.getCurrentName();
      jp.nextToken();
      switch (fieldName) {
        case IN_FILE_KEY:
          this.inputFileName = jp.getText();
          break;
        case IN_FILE_DIR_KEY:
          this.inputFileDirName = jp.getText();
          break;
        case SPLIT_PATTERN_KEY:
          this.splitPattern = jp.getText();
          break;
        case OUT_FILE_KEY:
          this.outDirName = jp.getText();
          break;
        case EXEC_LOC_KEY:
          this.execPath = jp.getText();
          break;
        case NUM_PROCESSES_KEY:
          this.numberOfThreads = jp.getIntValue();
          break;
        case STATS_KEY:
          this.makeStats = jp.getBooleanValue();
          break;
        case NUM_HEADER_KEY:
          this.numberOfHeaderLines = jp.getIntValue();
          break;
        case DEFAULT_MERGE_KEY:
          if (jp.getBooleanValue()) {
            this.mergeMethod = 0;
          }
          break;
        case CUSTOM_MERGE_KEY:
          if (jp.getBooleanValue()) {
            this.mergeMethod = 1;
          }
          break;
        case EXTERNAL_MERGE_KEY:
          if (jp.getBooleanValue()) {
            this.mergeMethod = 2;
          }
          break;
        case ARGUMENT_KEY:
          this.argument = jp.getText();
          break;
        case OUTPUT_FMT_KEY:
          this.outputFmt = jp.getBooleanValue();
          break;
        default:
          assert (false);
      }
    }
    jp.close();
  }
 private <T> String processData(
     final CrestApiProcessor<T> processor, final CrestContainer<T> container, final String data) {
   String next = null;
   try {
     final JsonFactory parserFactory = new JsonFactory();
     final JsonParser jsonParser = parserFactory.createParser(data);
     jsonParser.nextToken();
     while (jsonParser.nextToken() != JsonToken.END_OBJECT) {
       final String fieldname = jsonParser.getCurrentName();
       jsonParser.nextToken();
       switch (fieldname) {
         case "totalCount":
           container.setTotalCount(jsonParser.getIntValue());
           break;
         case "pageCount":
           container.setPageCount(jsonParser.getIntValue());
           break;
         case "items":
           processItems(processor, container, jsonParser);
           break;
         case "next":
           next = processNext(jsonParser);
           break;
         default:
           break;
       }
     }
   } catch (final IOException e) {
     if (LOGGER.isWarnEnabled()) {
       LOGGER.warn("Problems while parsing json data: " + e.getMessage(), e);
     }
   }
   return next;
 }
Example #9
0
  private void parseItemIdList(Reader in, IItemIdListHandler handler)
      throws JsonParseException, IOException, RemoteException {
    JsonFactory f = new JsonFactory();
    JsonParser jp = f.createParser(in);

    String currName;

    List<String> idList = new ArrayList<String>();

    jp.nextToken(); // will return JsonToken.START_OBJECT (verify?)
    while (jp.nextToken() != JsonToken.END_OBJECT) {
      currName = jp.getCurrentName();
      jp.nextToken(); // move to value, or START_OBJECT/START_ARRAY
      if (currName.equals("itemRefs")) { // contains an object
        // start items
        while (jp.nextToken() != JsonToken.END_ARRAY) {
          currName = jp.getCurrentName();
          if (currName == null) continue;
          jp.nextToken();
          if (currName.equals("id")) {
            idList.add(Utils.dec2Hex(jp.getText())); // convert dec to hex
          } else {
            jp.skipChildren();
          }
        }

        handler.items(idList);

      } else {
        jp.skipChildren();
      }
    }
  }
Example #10
0
 /** Parse a JSON string that represents a ClusterCommand.. */
 public static EncryptedCommand parseCommandString(String commandString) {
   try {
     JsonFactory jsonFact = new JsonFactory();
     JsonParser jsonParser = jsonFact.createParser(commandString);
     return new ObjectMapper().readValue(jsonParser, EncryptedCommand.class);
   } catch (IOException e) {
     LOGGER.warn(null, e);
     return null;
   }
 }
Example #11
0
 public void parseFromStringAndNotClose(JsonFactory factory) throws IOException {
   UTF8StreamJsonParser parser = null;
   try {
     parser = (UTF8StreamJsonParser) factory.createParser("[]");
     Object o = parser.readValueAs(Object.class);
     ignore(o);
   } catch (Exception e) {
   } finally {
   }
 }
  private static JsonParser createJsonParserFromStream(final InputStream streamRef)
      throws JsonParseException, IOException {
    JsonParser parser = jsonFactory.createParser(streamRef);

    return parser
        // allows handling of infinity, -infinity, and NaN for Doubles
        .enable(JsonParser.Feature.ALLOW_NON_NUMERIC_NUMBERS)
        // don't close the stream and allow it to be drained completely
        // in ExecutionEngine to improve socket reuse
        .disable(JsonParser.Feature.AUTO_CLOSE_SOURCE);
  }
Example #13
0
  private void parseTagList(Reader in, ITagListHandler handler)
      throws JsonParseException, IOException, RemoteException {
    JsonFactory f = new JsonFactory();
    JsonParser jp = f.createParser(in);

    String currName;

    ITag tag = null;
    List<ITag> tagList = new ArrayList<ITag>();

    jp.nextToken(); // will return JsonToken.START_OBJECT (verify?)
    while (jp.nextToken() != JsonToken.END_OBJECT) {
      currName = jp.getCurrentName();
      jp.nextToken(); // move to value, or START_OBJECT/START_ARRAY
      if (currName.equals("tags")) { // contains an object
        // start items
        while (jp.nextToken() != JsonToken.END_ARRAY) {
          if (jp.getCurrentToken() == JsonToken.START_OBJECT) {
            tag = new ITag();
          } else if (jp.getCurrentToken() == JsonToken.END_OBJECT) {
            tagList.add(tag);
            tag = null;
          }

          currName = jp.getCurrentName();
          if (currName == null) continue;
          jp.nextToken();
          if (currName.equals("id")) {
            tag.uid = jp.getText();
            int i = tag.uid.indexOf("/label/");
            if (i != -1) {
              tag.label = tag.uid.substring(i + "/label/".length());
              // NOTE: @see ReaderManager#updateTagTypes
              tag.type = ITag.TYPE_TAG_LABEL;
            } else if (tag.uid.endsWith("state/com.google/starred")) {
              tag.label = "state/com.google/starred";
              tag.type = ITag.TYPE_TAG_STARRED;
            }
          } else if (currName.equals("sortid")) {
            tag.sortid = jp.getText();
          } else {
            jp.skipChildren();
          }
        }

        handler.tags(tagList);

      } else {
        jp.skipChildren();
      }
    }
  }
Example #14
0
 public void parseFromInputStreamAndLeak(JsonFactory factory) throws IOException {
   JsonParser parser = null;
   FileInputStream in = null;
   try {
     in = new FileInputStream("");
     parser = factory.createParser(in);
     Object o = parser.readValueAs(Object.class);
     ignore(o);
   } catch (Exception e) {
   } finally {
     if (parser != null) parser.close();
   }
   // parser does not own a resource which is leaked
 }
Example #15
0
 private void _testSurrogates(JsonFactory f, boolean checkText) throws IOException {
   byte[] json = "{\"text\":\"\uD83D\uDE03\"}".getBytes("UTF-8");
   // first
   JsonParser jp = f.createParser(json);
   assertToken(JsonToken.START_OBJECT, jp.nextToken());
   assertToken(JsonToken.FIELD_NAME, jp.nextToken());
   if (checkText) {
     assertEquals("text", jp.getText());
   }
   assertToken(JsonToken.VALUE_STRING, jp.nextToken());
   if (checkText) {
     assertEquals("\uD83D\uDE03", jp.getText());
   }
   assertToken(JsonToken.END_OBJECT, jp.nextToken());
 }
Example #16
0
  private Map<String, Long> parseUnreadCountList(Reader in) throws JsonParseException, IOException {
    JsonFactory f = new JsonFactory();
    JsonParser jp = f.createParser(in);

    String currName;

    String uid = null;
    Long timestamp = null;
    int len;
    String text = null;
    Map<String, Long> unreadList = new HashMap<String, Long>();

    jp.nextToken(); // will return JsonToken.START_OBJECT (verify?)
    while (jp.nextToken() != JsonToken.END_OBJECT) {
      currName = jp.getCurrentName();
      jp.nextToken(); // move to value, or START_OBJECT/START_ARRAY
      if (currName.equals("unreadcounts")) { // contains an object
        // start items
        while (jp.nextToken() != JsonToken.END_ARRAY) {
          if (jp.getCurrentToken() == JsonToken.START_OBJECT) {
            // do nothing
          } else if (jp.getCurrentToken() == JsonToken.END_OBJECT) {
            if (!unreadList.containsKey(uid)) unreadList.put(uid, timestamp);
          }

          currName = jp.getCurrentName();
          if (currName == null) continue;

          jp.nextToken();
          if (currName.equals("id")) {
            uid = jp.getText();
          } else if (currName.equals("newestItemTimestampUsec")) {
            text = jp.getText();
            len = text.length();
            if (len > 13) text = jp.getText().substring(0, jp.getText().length() - 6);
            else if (len > 10) text = jp.getText().substring(0, jp.getText().length() - 3);
            timestamp = Utils.asLong(text); // millis -> unixtime
          } else {
            jp.skipChildren();
          }
        }
      } else {
        jp.skipChildren();
      }
    }

    return unreadList;
  }
 protected final double _testRawDeser(int reps, byte[] json, ObjectReader reader)
     throws IOException {
   long start = System.nanoTime();
   final JsonFactory f = reader.getFactory();
   while (--reps >= 0) {
     JsonParser p = f.createParser(new ByteArrayInputStream(json));
     JsonToken t;
     while ((t = p.nextToken()) != null) {
       if (t == JsonToken.VALUE_STRING) {
         p.getText();
       } else if (t.isNumeric()) {
         p.getNumberValue();
       }
       ;
     }
     p.close();
   }
   hash = f.hashCode();
   return _msecsFromNanos(System.nanoTime() - start);
 }
 @Override
 protected Void doInBackground(String... urls) {
   locationsList = new ArrayList<>();
   final JsonFactory jfactory = new JsonFactory();
   JsonParser jParser = null;
   try {
     jParser = jfactory.createParser(new URL(urls[0]));
     Log.d("MyLogs", "URL - " + urls[0]);
     while (jParser.nextToken() != JsonToken.END_ARRAY) {
       String fieldname = jParser.getCurrentName();
       if ("id".equals(fieldname)) {
         map = new HashMap<>();
         jParser.nextToken();
         map.put("id", jParser.getText());
       } else if ("name".equals(fieldname)) {
         jParser.nextToken();
         map.put("name", jParser.getText());
         locationsList.add(map);
       }
     }
   } catch (IOException | RuntimeException e) {
     e.printStackTrace();
   } finally {
     if (jParser != null) {
       try {
         jParser.close();
       } catch (IOException e) {
         e.printStackTrace();
       }
     }
   }
   list = new ArrayList<>();
   for (HashMap<String, String> a : locationsList) {
     list.add(a.get("name"));
   }
   return null;
 }
Example #19
0
 public XContentParser createParser(InputStream is) throws IOException {
   return new JsonXContentParser(jsonFactory.createParser(is));
 }
Example #20
0
 public XContentParser createParser(String content) throws IOException {
   return new JsonXContentParser(jsonFactory.createParser(new FastStringReader(content)));
 }
Example #21
0
  private String parseItemList(Reader in, IItemListHandler handler)
      throws JsonParseException, IOException, RemoteException {
    JsonFactory f = new JsonFactory();
    JsonParser jp = f.createParser(in);

    long length = 0;
    String currName;
    String mediaUrl = null;
    String mediaType = null;

    IItem entry = null;
    String continuation = null;
    List<IItem> itemList = new ArrayList<IItem>();

    List<String> excludedSubs = handler.excludedStreams(); // excluded subscriptions

    jp.nextToken(); // will return JsonToken.START_OBJECT (verify?)
    while (jp.nextToken() != JsonToken.END_OBJECT) {

      currName = jp.getCurrentName();
      jp.nextToken(); // move to value, or START_OBJECT/START_ARRAY
      if ("continuation".equals(currName)) {
        continuation = jp.getText();
      } else if ("items".equals(currName)) { // contains an object
        // start items
        while (jp.nextToken() != JsonToken.END_ARRAY) {
          // request stop
          //					if (handler.requestStop()) throw new JsonParseException(null, null);

          if (jp.getCurrentToken() == JsonToken.START_OBJECT) {
            entry = new IItem();
          } else if (jp.getCurrentToken() == JsonToken.END_OBJECT) {
            if (entry != null && entry.uid.length() > 0) {
              if (length + entry.getLength() > MAX_TRANSACTION_LENGTH) {
                handler.items(itemList, STRATEGY_INSERT_DEFAULT);
                itemList.clear();
                length = 0;
              }

              itemList.add(entry);
              length += entry.getLength();
            }

            if (itemList.size() % 200 == 0
                || length
                    > MAX_TRANSACTION_LENGTH) { // avoid TransactionTooLargeException, android only
              // allows 1mb
              handler.items(itemList, STRATEGY_INSERT_DEFAULT);
              itemList.clear();
              length = 0;
            }
            entry = null;
          }

          currName = jp.getCurrentName();
          if (currName == null || entry == null) continue;

          jp.nextToken(); // move to value
          if (currName.equals("id")) {
            entry.uid = stripItemUid(jp.getText());
          } else if (currName.equals("crawlTimeMsec")) {
            entry.updatedTime = Long.valueOf(jp.getText()) / 1000;
          } else if (currName.equals("title")) {
            entry.title = Utils.stripTags(unEscapeEntities(jp.getText()), true);
          } else if (currName.equals("categories")) {
            while (jp.nextToken() != JsonToken.END_ARRAY) {
              String category = jp.getText();
              if (category != null && addUserLabel(category, entry)) {
                entry.addTag(category);
              }
              if (category != null && category.endsWith("/state/com.google/read")) {
                entry.read = true;
              }
            }
          } else if (currName.equals("published")) {
            entry.publishedTime = jp.getLongValue();
          } else if (currName.equals("alternate")) {
            while (jp.nextToken() != JsonToken.END_ARRAY) {
              currName = jp.getCurrentName();
              if (currName == null) continue;
              jp.nextToken();
              if (currName.equals("href")) {
                entry.link = jp.getText();
              } else {
                jp.skipChildren();
              }
            }
          } else if (currName.equals("enclosure")) {
            while (jp.nextToken() != JsonToken.END_ARRAY) {
              currName = jp.getCurrentName();
              if (currName == null) continue;
              jp.nextToken();
              if (currName.equals("href")) {
                mediaUrl = jp.getText();
              } else if (currName.equals("type")) {
                mediaType = jp.getText();
                if (mediaType.startsWith("image")) {
                  entry.addImage(mediaUrl, mediaType);
                } else if (mediaType.startsWith("video")) {
                  entry.addVideo(mediaUrl, mediaType);
                } else if (mediaType.startsWith("audio")) {
                  entry.addAudio(mediaUrl, mediaType);
                }

                mediaUrl = null;
                mediaType = null;
              } else {
                jp.skipChildren();
              }
            }
          } else if (currName.equals("summary") || currName.equals("content")) {
            while (jp.nextToken() != JsonToken.END_OBJECT) {
              currName = jp.getCurrentName();
              if (currName == null) continue;
              jp.nextToken();
              if (currName.equals("content")) {
                entry.content = unEscapeEntities(jp.getText());
              } else {
                jp.skipChildren();
              }
            }
          } else if (currName.equals("author")) {
            entry.author = jp.getText();
          } else if (currName.equals("origin")) {
            while (jp.nextToken() != JsonToken.END_OBJECT) {
              currName = jp.getCurrentName();
              if (currName == null) continue;
              jp.nextToken();
              if (currName.equals("streamId")) {
                String streamId = jp.getText();
                if (streamId != null
                    && (excludedSubs == null || !excludedSubs.contains(streamId))) {
                  entry.subUid = streamId;
                } else entry = null;
              } else {
                jp.skipChildren();
              }
            }
          } else {
            jp.skipChildren();
          }
        }

        handler.items(itemList, STRATEGY_INSERT_DEFAULT);
        itemList.clear();

      } else {
        jp.skipChildren();
      }
    }

    return continuation;
  }
Example #22
0
 public XContentParser createParser(byte[] data) throws IOException {
   return new JsonXContentParser(jsonFactory.createParser(data));
 }
Example #23
0
  private void parseSubList(
      Reader in, ISubscriptionListHandler handler, Map<String, Long> updatedTimes)
      throws JsonParseException, IOException, RemoteException {
    JsonFactory f = new JsonFactory();
    JsonParser jp = f.createParser(in);

    String currName;

    ISubscription feed = null;
    List<ISubscription> feedList = new ArrayList<ISubscription>();

    jp.nextToken(); // will return JsonToken.START_OBJECT (verify?)
    while (jp.nextToken() != JsonToken.END_OBJECT) {
      currName = jp.getCurrentName();

      jp.nextToken(); // move to value, or START_OBJECT/START_ARRAY
      if (currName.equals("subscriptions")) { // contains an object
        // start items
        while (jp.nextToken() != JsonToken.END_ARRAY) {
          if (jp.getCurrentToken() == JsonToken.START_OBJECT) {
            feed = new ISubscription();
          } else if (jp.getCurrentToken() == JsonToken.END_OBJECT) {
            if (updatedTimes != null && updatedTimes.containsKey(feed.uid))
              feed.newestItemTime = updatedTimes.get(feed.uid);
            feedList.add(feed);
            feed = null;
          }

          currName = jp.getCurrentName();

          if (currName == null) continue;
          jp.nextToken();
          if (currName.equals("id")) {
            feed.uid = jp.getText();
          } else if (currName.equals("title")) {
            feed.title = unEscapeEntities(jp.getText());
          } else if (currName.equals("sortid")) {
            feed.sortid = jp.getText();
          } else if (currName.equals("htmlUrl")) {
            feed.htmlUrl = jp.getText();
          } else if (currName.equals("categories")) {
            while (jp.nextToken() != JsonToken.END_ARRAY) {
              currName = jp.getCurrentName();
              if (currName == null) continue;
              jp.nextToken();
              if (currName.equals("id")) {
                feed.addTag(jp.getText());
              } else {
                jp.skipChildren();
              }
            }
          } else {
            jp.skipChildren();
          }
        }

        handler.subscriptions(feedList);

      } else {
        jp.skipChildren();
      }
    }
  }
Example #24
0
 public XContentParser createParser(Reader reader) throws IOException {
   return new JsonXContentParser(jsonFactory.createParser(reader));
 }
  public static void main(String[] args)
      throws JsonParseException, MalformedURLException, IOException, ClassNotFoundException,
          SQLException, JSONException {
    Class.forName("org.h2.Driver");
    Connection conn = DriverManager.getConnection("jdbc:h2:~/stories2009-2014", "sa", "");
    // add application code here
    Statement statement = conn.createStatement();
    statement.execute("drop table story IF EXISTS;");
    statement.execute(
        "create table story("
            + "id int primary key,"
            + " title varchar(255),"
            + " url varchar(255),"
            + " localDate date,"
            + " primaryImage varchar(255),"
            + " primaryImageCaption TEXT,"
            + " primaryImageRightsInformation TEXT,"
            + " subjects TEXT,"
            + " station varchar(255),"
            + " state varchar(255),"
            + " place varchar(255),"
            + " keywords TEXT,"
            + " latitude varchar(255),"
            + " longitude varchar(255),"
            + " mediaRSS varchar(255))");
    statement.close();

    String fileJson = "Localphotostories2009-2014-JSON.json";
    JsonFactory factory = new JsonFactory();
    JsonParser parser = factory.createParser(new File(fileJson));

    int idx = 1;
    while (parser.nextToken() != JsonToken.END_ARRAY) {
      while (parser.nextToken() != JsonToken.END_OBJECT) {
        if (parser.getCurrentToken() == JsonToken.START_OBJECT) continue;

        parser.nextToken();
        String title = parser.getText();

        parser.nextToken();
        parser.nextToken();
        String url = parser.getText();

        parser.nextToken();
        parser.nextToken();
        String date = parser.getText();
        DateTimeFormatter pattern = DateTimeFormatter.ofPattern("d/M/yyyy");
        LocalDate localDate = LocalDate.parse(date, pattern);

        parser.nextToken();
        parser.nextToken();
        String primaryImage = parser.getText();

        parser.nextToken();
        parser.nextToken();
        String primaryImageCaption = parser.getText();

        parser.nextToken();
        parser.nextToken();
        String primaryImageRightsInformation = parser.getText();

        parser.nextToken();
        parser.nextToken();
        String subjects = parser.getText();

        parser.nextToken();
        parser.nextToken();
        String station = parser.getText();

        parser.nextToken();
        parser.nextToken();
        String state = parser.getText();

        parser.nextToken();
        parser.nextToken();
        String place = parser.getText();

        parser.nextToken();
        parser.nextToken();
        String keywords = parser.getText();

        parser.nextToken();
        parser.nextToken();
        String latitude = parser.getText();

        parser.nextToken();
        parser.nextToken();
        String longitude = parser.getText();

        parser.nextToken();
        parser.nextToken();
        String mediaRSS = parser.getText();

        if (latitude.isEmpty() && longitude.isEmpty()) continue;

        Statement cooridinate = conn.createStatement();
        ResultSet resultSet =
            cooridinate.executeQuery(
                "SELECT id From story where latitude = '"
                    + latitude
                    + "' and longitude = '"
                    + longitude
                    + "'");

        while (resultSet.next()) {
          int id = resultSet.getInt(1);

          Double tempLatitude = Double.valueOf(latitude);
          tempLatitude += Math.random() / 100;

          Double tempLongitude = Double.valueOf(longitude);
          tempLongitude += Math.random() / 100;

          Statement updatestat = conn.createStatement();
          updatestat.executeUpdate(
              "UPDATE story set latitude = '"
                  + tempLatitude
                  + "', longitude = '"
                  + tempLongitude
                  + "' where id = "
                  + id);
          updatestat.close();
        }
        cooridinate.close();

        PreparedStatement stm =
            conn.prepareStatement(
                "insert into story(id,"
                    + " title,"
                    + " url,"
                    + " localDate,"
                    + " primaryImage,"
                    + " primaryImageCaption,"
                    + " primaryImageRightsInformation,"
                    + " subjects,"
                    + " station,"
                    + " state,"
                    + " place,"
                    + " keywords,"
                    + " latitude,"
                    + " longitude,"
                    + " mediaRSS) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
        stm.setInt(1, idx++);
        stm.setString(2, title);
        stm.setString(3, url);
        java.util.Date from = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
        stm.setDate(4, new Date(from.getTime()));
        stm.setString(5, primaryImage);
        stm.setString(6, primaryImageCaption);
        stm.setString(7, primaryImageRightsInformation);
        stm.setString(8, subjects);
        stm.setString(9, station);
        stm.setString(10, state);
        stm.setString(11, place);
        stm.setString(12, keywords);
        stm.setString(13, latitude);
        stm.setString(14, longitude);
        stm.setString(15, mediaRSS);

        stm.execute();
        stm.close();
      }
    }

    // Ballarat photographs data

    fileJson = "BallaratPhotographics.json";
    factory = new JsonFactory();
    parser = factory.createParser(new File(fileJson));
    ObjectMapper mapper = new ObjectMapper();
    mapper.registerModule(new JsonOrgModule());
    JSONArray value = mapper.readValue(parser, JSONArray.class);
    for (int i = 0; i < value.length(); i++) {
      String title = value.getJSONObject(i).getString("FIELD1");

      PreparedStatement stm =
          conn.prepareStatement(
              "insert into story(id,"
                  + " title,"
                  + " url,"
                  + " localDate,"
                  + " primaryImage,"
                  + " primaryImageCaption,"
                  + " primaryImageRightsInformation,"
                  + " subjects,"
                  + " station,"
                  + " state,"
                  + " place,"
                  + " keywords,"
                  + " latitude,"
                  + " longitude,"
                  + " mediaRSS) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
      stm.setInt(1, idx++);
      stm.setString(2, value.getJSONObject(i).getString("FIELD1"));
      stm.setString(3, value.getJSONObject(i).getString("FIELD4"));
      java.util.Date from = Date.valueOf(value.getJSONObject(i).getString("FIELD5") + "-01-01");
      stm.setDate(4, new Date(from.getTime()));
      stm.setString(5, value.getJSONObject(i).getString("FIELD3"));
      stm.setString(6, value.getJSONObject(i).getString("FIELD2"));
      stm.setString(7, "");
      stm.setString(8, "");
      stm.setString(9, "");
      stm.setString(10, "VIC");
      stm.setString(11, "Ballarat");
      stm.setString(12, value.getJSONObject(i).getString("FIELD1"));
      stm.setString(13, value.getJSONObject(i).getString("FIELD6"));
      stm.setString(14, value.getJSONObject(i).getString("FIELD7"));
      stm.setString(15, "BPHOTO");

      stm.execute();
      stm.close();
    }

    conn.close();
  }
 protected JsonParser constructParser(byte[] data) throws IOException {
   return _factory.createParser(data, 0, data.length);
 }
Example #27
0
 public XContentParser createParser(byte[] data, int offset, int length) throws IOException {
   return new JsonXContentParser(jsonFactory.createParser(data, offset, length));
 }
Example #28
0
  public void jsonParser() {
    int iterator = 0;
    Manager manager = Manager.getInstance(); // Create the object of singleton
    Element jacksonElement = new Element();

    JsonFactory jsonFactory = new JsonFactory();
    try {
      File f = new File(FileDownload.getFileName());
      JsonParser parser = jsonFactory.createParser(f);

      // Parse the file  by Jackson parser
      while (!parser.isClosed()) {
        JsonToken jsonToken = parser.nextToken();

        if (JsonToken.FIELD_NAME.equals(jsonToken)) {
          String fieldName = parser.getCurrentName();
          jsonToken = parser.nextToken();

          // The JSON file has the next fields:
          // location,date,name and object stock (this object
          // includes:name,bid,id,visible,minPrice,maxPrice)

          if ("location".equals(fieldName)) {
            manager.setLocation(parser.getValueAsString());
          }
          if ("date".equals(fieldName)) {
            manager.setDate(parser.getValueAsString());
          }
          if ("name".equals(fieldName) && (parser.getValueAsString().equals("Moscow Stock")))
            manager.setName(parser.getValueAsString());

          if ("bid".equals(fieldName)) {
            jacksonElement.setBid(parser.getValueAsDouble());
            iterator++;
          } else if ("id".equals(fieldName)) {
            jacksonElement.setId(parser.getValueAsInt());
            iterator++;
          } else if ("name".equals(fieldName)
              && (!parser.getValueAsString().equals("Moscow Stock"))) {
            jacksonElement.setName(
                parser.getValueAsString().substring(0, parser.getValueAsString().length() - 4));
            iterator++;
          } else if ("minPrice".equals(fieldName)) {
            jacksonElement.setMinPrice(parser.getValueAsDouble());
            iterator++;
          } else if ("maxPrice".equals(fieldName)) {
            jacksonElement.setMaxPrice(parser.getValueAsDouble());
            iterator++;
          } else if ("visible".equals(fieldName)) {
            jacksonElement.setVisible(parser.getValueAsBoolean());
            iterator++;
          }
          if (iterator == 6) {
            manager.setJsonList(jacksonElement); // add the data to the list
            jacksonElement = new Element();
            iterator = 0;
          }
        }
      }
    } catch (JsonParseException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  /** Parses the output of a {@code topN} query, sending the results to a {@link Sink}. */
  private void parse(
      QueryType queryType,
      InputStream in,
      Sink sink,
      List<String> fieldNames,
      List<ColumnMetaData.Rep> fieldTypes,
      Page page) {
    final JsonFactory factory = new JsonFactory();
    final Row.RowBuilder rowBuilder = Row.newBuilder(fieldNames.size());

    if (CalcitePrepareImpl.DEBUG) {
      try {
        final byte[] bytes = AvaticaUtils.readFullyToBytes(in);
        System.out.println("Response: " + new String(bytes));
        in = new ByteArrayInputStream(bytes);
      } catch (IOException e) {
        throw Throwables.propagate(e);
      }
    }

    try (final JsonParser parser = factory.createParser(in)) {
      switch (queryType) {
        case TOP_N:
          if (parser.nextToken() == JsonToken.START_ARRAY
              && parser.nextToken() == JsonToken.START_OBJECT) {
            expectScalarField(parser, "timestamp");
            if (parser.nextToken() == JsonToken.FIELD_NAME
                && parser.getCurrentName().equals("result")
                && parser.nextToken() == JsonToken.START_ARRAY) {
              while (parser.nextToken() == JsonToken.START_OBJECT) {
                // loop until token equal to "}"
                parseFields(fieldNames, fieldTypes, rowBuilder, parser);
                sink.send(rowBuilder.build());
                rowBuilder.reset();
              }
            }
          }
          break;

        case SELECT:
          if (parser.nextToken() == JsonToken.START_ARRAY
              && parser.nextToken() == JsonToken.START_OBJECT) {
            page.pagingIdentifier = null;
            page.offset = -1;
            expectScalarField(parser, "timestamp");
            if (parser.nextToken() == JsonToken.FIELD_NAME
                && parser.getCurrentName().equals("result")
                && parser.nextToken() == JsonToken.START_OBJECT) {
              if (parser.nextToken() == JsonToken.FIELD_NAME
                  && parser.getCurrentName().equals("pagingIdentifiers")
                  && parser.nextToken() == JsonToken.START_OBJECT) {
                switch (parser.nextToken()) {
                  case FIELD_NAME:
                    page.pagingIdentifier = parser.getCurrentName();
                    if (parser.nextToken() == JsonToken.VALUE_NUMBER_INT) {
                      page.offset = parser.getIntValue();
                    }
                    expect(parser, JsonToken.END_OBJECT);
                    break;
                  case END_OBJECT:
                }
              }
              if (parser.nextToken() == JsonToken.FIELD_NAME
                  && parser.getCurrentName().equals("events")
                  && parser.nextToken() == JsonToken.START_ARRAY) {
                while (parser.nextToken() == JsonToken.START_OBJECT) {
                  expectScalarField(parser, "segmentId");
                  expectScalarField(parser, "offset");
                  if (parser.nextToken() == JsonToken.FIELD_NAME
                      && parser.getCurrentName().equals("event")
                      && parser.nextToken() == JsonToken.START_OBJECT) {
                    parseFields(fieldNames, fieldTypes, rowBuilder, parser);
                    sink.send(rowBuilder.build());
                    rowBuilder.reset();
                  }
                  expect(parser, JsonToken.END_OBJECT);
                }
                parser.nextToken();
              }
            }
          }
          break;

        case GROUP_BY:
          if (parser.nextToken() == JsonToken.START_ARRAY) {
            while (parser.nextToken() == JsonToken.START_OBJECT) {
              expectScalarField(parser, "version");
              expectScalarField(parser, "timestamp");
              if (parser.nextToken() == JsonToken.FIELD_NAME
                  && parser.getCurrentName().equals("event")
                  && parser.nextToken() == JsonToken.START_OBJECT) {
                parseFields(fieldNames, fieldTypes, rowBuilder, parser);
                sink.send(rowBuilder.build());
                rowBuilder.reset();
              }
              expect(parser, JsonToken.END_OBJECT);
            }
          }
      }
    } catch (IOException | InterruptedException e) {
      throw Throwables.propagate(e);
    }
  }
 protected JsonParser constructParser(InputStream in) throws IOException {
   return _factory.createParser(in);
 }