From 4f8da13c1790e691f86ff68498a5be1e9a153f18 Mon Sep 17 00:00:00 2001 From: Jochen Berger Date: Mon, 13 May 2013 12:39:34 +0200 Subject: [PATCH] make TYPE filter work on multi-level path --- .../java/com/jayway/jsonpath/Criteria.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 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 4e31b0f6..49cbb392 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/Criteria.java +++ b/json-path/src/main/java/com/jayway/jsonpath/Criteria.java @@ -243,14 +243,19 @@ public class Criteria { } else if (CriteriaType.TYPE.equals(key)) { - Class exp = (Class) expectedVal; - Class act = actualVal == null ? null : actualVal.getClass(); + final Class exp = (Class) expectedVal; + return objectOrAnyCollectionItemMatches(actualVal, new Predicate() { - if (act == null) { - return false; - } else { - return act.equals(exp); - } + @Override + public boolean accept(Object value) { + Class act = value == null ? null : value.getClass(); + if (act == null) { + return false; + } else { + return act.equals(exp); + } + } + }); } else if (CriteriaType.REGEX.equals(key)) { final Pattern exp = (Pattern) expectedVal;