Browse Source

ArrayEvalFilter: use HasPathExpression for '@' too

pull/39/head
Laurent Charrière 11 years ago
parent
commit
0c049f8517
  1. 8
      json-path/src/main/java/com/jayway/jsonpath/internal/filter/ArrayEvalFilter.java

8
json-path/src/main/java/com/jayway/jsonpath/internal/filter/ArrayEvalFilter.java

@ -31,8 +31,7 @@ public class ArrayEvalFilter extends PathTokenFilter {
private static final Pattern CONDITION_STATEMENT_PATTERN = Pattern.compile("\\[\\s?\\?\\(.*\\)\\s?]");
private static final Pattern CONDITION_PATTERN = Pattern.compile("\\s?(@.*?)\\s?([!=<>]+)\\s?(.*?)\\s?");
private static final Pattern FIELD_EXISTS_PATTERN = Pattern.compile("\\s?@\\s?(.*?)\\s?");
private static final Pattern HASPATH_PATTERN = Pattern.compile("\\s?(@\\..*)\\s?(.*?)\\s?");
private static final Pattern HASPATH_PATTERN = Pattern.compile("\\s?(@.*)\\s?(.*?)\\s?");
private static final Pattern REGEX_PATTERN = Pattern.compile("\\s?\\/(.*)\\/\\.test\\((@\\..*)\\)\\s?");
private Expression[] expressions;
@ -115,11 +114,6 @@ public class ArrayEvalFilter extends PathTokenFilter {
String field = regexMatcher.group(2).trim();
return new RegexExpression(regex, field);
}
Matcher fieldExistsMatcher = FIELD_EXISTS_PATTERN.matcher(condition);
if (fieldExistsMatcher.matches()) {
// Field exists check, the single '@' in: $.menu.items[?(@ && @.id == 'ViewSVG')].id
return new OperatorExpression(condition, "@.", "!=", "null");
}
return null;
}

Loading…
Cancel
Save