From d3b406c08b208006c05639652ea57b077a6a0290 Mon Sep 17 00:00:00 2001 From: "Eric x. sun" Date: Thu, 21 May 2015 14:43:14 +0800 Subject: [PATCH] fix wired compare result like: "8.9">12 --- json-path/src/main/java/com/jayway/jsonpath/Criteria.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 67a95f16..4503347b 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/Criteria.java +++ b/json-path/src/main/java/com/jayway/jsonpath/Criteria.java @@ -828,7 +828,12 @@ public class Criteria implements Predicate { if (exp.contains("\'")) { exp = exp.replace("\\'", "'"); } - return exp.compareTo((String) right); +// return exp.compareTo((String) right); + if(Utils.isNumeric(left.toString()) && Utils.isNumeric(right.toString())) { + return new BigDecimal(left.toString()).compareTo(new BigDecimal(right.toString())); + } else { + return exp.compareTo((String) right); + } } else if (left instanceof Number && right instanceof Number) { return new BigDecimal(left.toString()).compareTo(new BigDecimal(right.toString())); } else if (left instanceof String && right instanceof Number) {