@Override
  public Object deserialize(final Writable blob) throws SerDeException {
    final Text t = (Text) blob;

    if (t.getLength() == 0) {
      if (!this.nullEmptyLines) {
        throw new SerDeException("Encountered an empty row in the text file");
      }
      final int fieldCount = soi.getAllStructFieldRefs().size();
      return Collections.nCopies(fieldCount, null);
    }

    try {
      return jsonReader.parseStruct(
          new ByteArrayInputStream((t.getBytes()), 0, t.getLength()));
    } catch (Exception e) {
      log.debug("Problem parsing JSON text [{}]", t, e);
      throw new SerDeException(e);
    }
  }
Deserialize an object out of a Writable blob containing JSON text. The
return value of this function will be constant since the function will
reuse the returned object. If the client wants to keep a copy of the
object, the client needs to clone the returned value by calling
ObjectInspectorUtils.getStandardObject().

@param blob The Writable (Text) object containing a serialized object
@return A List containing all the values of the row
serde/src/java/org/apache/hadoop/hive/serde2/JsonSerDe.java