Мне нужно разделить путь JSONPath на 3 части, если он имеет разделитель. Разделитель будет индикатором массива.
Например:
$. Цвет [*]. Имя
Нужно было бы стать:
Before: "$.Colors"
Separator: "[*]"
After: ".name"
В случае, если есть несколько:
как:
$.Colors[*].Color[*].name
Для этого нужно взять первое:
Before: "$.Colors"
Separator: "[*]"
After: ".Color[*].name"
Я также хочу, чтобы это работало на фильтрах:
$.Colors[?(@.type == 'Primary')].Color[*].name
Это разделит на это значение фильтра.
Before: "$.Colors"
Separator: "[?(@.type == 'Primary')]"
After: ".Color[*].name"
Мои попытки до сих пор были бесплодными:
static private String regexString = "\\[\\*]|\\[\\?\\(.*\\)]";
static private Pattern pattern = Pattern.compile(regexString);
private boolean splittable;
private String pre;
private String post;
private String split;
PathSplitter(String path) {
Matcher matcher = pattern.matcher(path);
if (!matcher.find()) {
splittable = false;
}
else {
splittable = true;
split = matcher.group(0);
//pre = matcher.group(1);
//post = matcher.group(2);
}
}
Любая помощь будет отличной!