docs: private Object readJSON() throws JSONException {
          switch (read(3)) {
          case zipObject:
              return readObject();
          case zipArrayString:
              return readArray(true);
          case zipArrayValue:
              return readArray(false);
          case zipEmptyObject:
              return new JSONObject();
          case zipEmptyArray:
              return new JSONArray();
          case zipTrue:
              return Boolean.TRUE;
          case zipFalse:
              return Boolean.FALSE;
          default:
              return JSONObject.NULL;
          }
      }