code: private JsonElement parseJsonObjectType(JsonSchema schema, JsonElement value)
        throws DataConversionException {
      JsonSchema valuesWithinDataType = schema.getValuesWithinDataType();
      if (schema.isType(MAP)) {
        if (Type.isPrimitive(valuesWithinDataType.getType())) {
          return value;
        }
  
        JsonObject map = new JsonObject();
        for (Entry<String, JsonElement> mapEntry : value.getAsJsonObject().entrySet()) {
          JsonElement mapValue = mapEntry.getValue();
          map.add(mapEntry.getKey(), parse(mapValue, valuesWithinDataType));
        }
        return map;
      } else if (schema.isType(RECORD)) {
        JsonSchema schemaArray = valuesWithinDataType.getValuesWithinDataType();
        return parse((JsonObject) value, schemaArray);
      } else {
        return JsonNull.INSTANCE;
      }
    }
docs: Parses JsonObject type values
  @param value
  @return
  @throws DataConversionException