code: public MatlabValue deserializeValue(JsonElement element) {
          if (!element.isJsonObject()) {
              throw new JsonParseException("expected JSON object");
          }
          JsonObject json = element.getAsJsonObject();
          MatlabType type = getType(json);
          JsonElement value = json.get(MatlabJSONConstants.VALUE);
          switch (type) {
              case ARRAY:
                  return parseMatlabArray(value);
              case BOOLEAN:
                  return parseMatlabBoolean(value);
              case CELL:
                  return parseMatlabCell(value);
              case FILE:
                  return parseMatlabFile(value);
              case MATRIX:
                  return parseMatlabMatrix(value);
              case SCALAR:
                  return parseMatlabScalar(value);
              case STRING:
                  return parseMatlabString(value);
              case STRUCT:
                  return parseMatlabStruct(value);
              case DATE_TIME:
                  return parseMatlabDateTime(value);
              default:
                  throw new JsonParseException("Unknown type: " + type);
          }
      }
docs: Deserializes an {@link MatlabValue} from a {@link JsonElement}.
  
  @param element the <code>JsonElement</code> containing a
  serialized <code>MatlabValue</code>
  
  @return the deserialized <code>MatlabValue</code>