docs: public static VoltTable fromJSONObject(JSONObject json) throws JSONException, IOException {
          // extract the schema and creat an empty table
          JSONArray jsonCols = json.getJSONArray(JSON_SCHEMA_KEY);
          ColumnInfo[] columns = new ColumnInfo[jsonCols.length()];
          for (int i = 0; i < jsonCols.length(); i++) {
              JSONObject jsonCol = jsonCols.getJSONObject(i);
              String name = jsonCol.getString(JSON_NAME_KEY);
              VoltType type = VoltType.get((byte) jsonCol.getInt(JSON_TYPE_KEY));
              columns[i] = new ColumnInfo(name, type);
          }
          VoltTable t = new VoltTable(columns);
  
          // set the status byte
          byte status = (byte) json.getInt(JSON_STATUS_KEY);
          t.setStatusCode(status);
  
          // load the row data
          JSONArray data = json.getJSONArray(JSON_DATA_KEY);
          for (int i = 0; i < data.length(); i++) {
              JSONArray jsonRow = data.getJSONArray(i);
              assert(jsonRow.length() == jsonCols.length());
              Object[] row = new Object[jsonRow.length()];
              for (int j = 0; j < jsonRow.length(); j++) {
                  row[j] = jsonRow.get(j);
                  if (row[j] == JSONObject.NULL) {
                      row[j] = null;
                  }
                  VoltType type = columns[j].type;
  
                  // convert strings to numbers
                  if (row[j] != null) {
                      switch (type) {
                      case BIGINT:
                      case INTEGER:
                      case SMALLINT:
                      case TINYINT:
                      case TIMESTAMP:
                          if (row[j] instanceof String) {
                              row[j] = Long.parseLong((String) row[j]);
                          }
                          assert(row[j] instanceof Number);
                          break;
                      case DECIMAL:
                          String decVal;
                          if (row[j] instanceof String) {
                              decVal = (String) row[j];
                          } else {
                              decVal = row[j].toString();
                          }
                          if (decVal.compareToIgnoreCase("NULL") == 0) {
                              row[j] = null;
                          } else {
                              row[j] = VoltDecimalHelper.deserializeBigDecimalFromString(decVal);
                          }
                          break;
                      case FLOAT:
                          if (row[j] instanceof String) {
                              row[j] = Double.parseDouble((String) row[j]);
                          }
                          assert(row[j] instanceof Number);
                          break;
                      default:
                          // empty fallthrough to make the warning go away
                      }
                  }
              }
              t.addRow(row);
          }
  
          return t;
      }