in common/src/main/java/org/apache/rocketmq/eventbridge/tools/pattern/PatternEvaluatorBuilder.java [149:173]
public static String getTargetElementOfFilterPattern(String filterPattern, String... elements) {
if (JsonUtil.isEmptyJsonObject(filterPattern)) {
return filterPattern;
}
final JsonElement rootElement;
try {
rootElement = jsonParser.parse(filterPattern);
} catch (JsonSyntaxException e) {
throw new InvalidEventPatternException(PatternErrorMessages.INVALID_JSON_STRING, e);
}
if (!rootElement.isJsonObject()) {
throw new InvalidEventPatternException(PatternErrorMessages.NON_SUPPORTED_JSON);
}
JsonObject sourceJsonObject = rootElement.getAsJsonObject();
JsonObject targetJsonObject = new JsonObject();
for (String element : elements) {
JsonElement targetElement = sourceJsonObject.get(element);
if (targetElement != null) {
targetJsonObject.add(element, targetElement);
}
}
return targetJsonObject.toString();
}