parseJsonSelectorExpression function

JsonSelector? parseJsonSelectorExpression(
  1. String expression
)

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 == '->>');
}