code: @Override
    public boolean nextKeyValue()
        throws IOException {
      // If there is no next value, return false. Set current key and value to null.
      // Different Hadoop recordreaders have different behavior for calling current key and value
      // after nextKeyValue returns false.
      if (!lineReader.nextKeyValue()) {
        logger.atFine().log("All values read: record reader read %s key, value pairs.", count);
        return false;
      }
      // Get the next line.
      currentKey.set(lineReader.getCurrentKey().get());
      Text lineValue = lineReader.getCurrentValue();
      currentValue = jsonParser.parse(lineValue.toString()).getAsJsonObject();
      // Increment count of key, value pairs.
      count++;
      return true;
    }
docs: Reads the next key, value pair. Gets next line and parses Json object.
  
  @return true if a key/value pair was read.
  @throws IOException on IO Error.