private static Object primitiveArrayToList(Object arr) {
    Class<?> ct = arr.getClass().getComponentType();
    if (int.class.equals(ct)) {
      return Arrays.asList(ArrayUtils.toObject((int[]) arr));
    }
    if (long.class.equals(ct)) {
      return Arrays.asList(ArrayUtils.toObject((long[]) arr));
    }
    if (char.class.equals(ct)) {
      return Arrays.asList(ArrayUtils.toObject((char[]) arr));
    }
    if (byte.class.equals(ct)) {
      return Arrays.asList(ArrayUtils.toObject((byte[]) arr));
    }
    if (short.class.equals(ct)) {
      return Arrays.asList(ArrayUtils.toObject((short[]) arr));
    }
    if (float.class.equals(ct)) {
      return Arrays.asList(ArrayUtils.toObject((float[]) arr));
    }
    if (double.class.equals(ct)) {
      return Arrays.asList(ArrayUtils.toObject((double[]) arr));
    }
    throw new RuntimeException("Unhandled primitiveArrayToList for type: " + ct);
  }
Takes JSON string in Text form, and has to return an object representation above
it that's readable by the corresponding object inspector.

For this implementation, since we're using the jackson parser, we can construct
our own object implementation, and we use HCatRecord for it
hcatalog/core/src/main/java/org/apache/hive/hcatalog/data/JsonSerDe.java