From a545702151dc79ad47b213b996985659ae0ad9b5 Mon Sep 17 00:00:00 2001 From: Jochen Berger Date: Mon, 13 May 2013 09:28:14 +0200 Subject: [PATCH] interpret criteria key as JSONPath to allow filting on nested properties --- json-path/src/main/java/com/jayway/jsonpath/Criteria.java | 8 ++++---- json-path/src/main/java/com/jayway/jsonpath/Filter.java | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/json-path/src/main/java/com/jayway/jsonpath/Criteria.java b/json-path/src/main/java/com/jayway/jsonpath/Criteria.java index cfb57c7b..3ee451bc 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/Criteria.java +++ b/json-path/src/main/java/com/jayway/jsonpath/Criteria.java @@ -48,7 +48,7 @@ public class Criteria { */ private static final Object NOT_SET = new Object(); - private final String key; + private final JsonPath key; private final List criteriaChain; @@ -61,17 +61,17 @@ public class Criteria { notEmpty(key, "key can not be null or empty"); this.criteriaChain = new ArrayList(); this.criteriaChain.add(this); - this.key = key; + this.key = JsonPath.compile(key); } private Criteria(List criteriaChain, String key) { notEmpty(key, "key can not be null or empty"); this.criteriaChain = criteriaChain; this.criteriaChain.add(this); - this.key = key; + this.key = JsonPath.compile(key); } - public String getKey() { + public JsonPath getKey() { return this.key; } diff --git a/json-path/src/main/java/com/jayway/jsonpath/Filter.java b/json-path/src/main/java/com/jayway/jsonpath/Filter.java index 8a3b8076..9de183bf 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/Filter.java +++ b/json-path/src/main/java/com/jayway/jsonpath/Filter.java @@ -101,8 +101,8 @@ public abstract class Filter { } public MapFilter addCriteria(Criteria criteria) { - Criteria existing = this.criteria.get(criteria.getKey()); - String key = criteria.getKey(); + Criteria existing = this.criteria.get(criteria.getKey().getPath()); + String key = criteria.getKey().getPath(); if (existing == null) { this.criteria.put(key, criteria); } else {