diff --git a/pom.xml b/pom.xml
index 8985291..1a0139f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -83,7 +83,7 @@
com.jayway.jsonpath
json-path
- 0.8.1
+ 2.2.0
org.slf4j
diff --git a/webmagic-core/src/main/java/us/codecraft/webmagic/selector/JsonPathSelector.java b/webmagic-core/src/main/java/us/codecraft/webmagic/selector/JsonPathSelector.java
index b0b90f9..f5c0bae 100644
--- a/webmagic-core/src/main/java/us/codecraft/webmagic/selector/JsonPathSelector.java
+++ b/webmagic-core/src/main/java/us/codecraft/webmagic/selector/JsonPathSelector.java
@@ -1,9 +1,11 @@
package us.codecraft.webmagic.selector;
+import com.alibaba.fastjson.JSON;
import com.jayway.jsonpath.JsonPath;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
/**
* JsonPath selector.
@@ -32,12 +34,20 @@ public class JsonPathSelector implements Selector {
if (object instanceof List) {
List list = (List) object;
if (list != null && list.size() > 0) {
- return list.iterator().next().toString();
+ return toString(list.iterator().next());
}
}
return object.toString();
}
+ private String toString(Object object) {
+ if (object instanceof Map) {
+ return JSON.toJSONString(object);
+ } else {
+ return String.valueOf(object);
+ }
+ }
+
@Override
public List selectList(String text) {
List list = new ArrayList();
@@ -48,10 +58,10 @@ public class JsonPathSelector implements Selector {
if (object instanceof List) {
List