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;