parseJsonSelectorExpression function
Attempts to parse expression into a JsonSelector. Returns null when no
JSON operator is present.
Implementation
JsonSelector? parseJsonSelectorExpression(String expression) {
if (!hasJsonSelector(expression)) {
return null;
}
final operator = expression.contains('->>') ? '->>' : '->';
final parts = expression.split(operator);
if (parts.length < 2) {
return null;
}
final field = parts.first.trim();
final rawPath = parts.sublist(1).join(operator).trim();
if (rawPath.isEmpty) {
return JsonSelector(field, r'$', operator == '->>');
}
final normalized = normalizeJsonPath(rawPath);
return JsonSelector(field, normalized, operator == '->>');
}