update jsonpath to 2.2.0 #606
parent
1fd9480496
commit
faca38d4ec
2
pom.xml
2
pom.xml
|
@ -83,7 +83,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.jayway.jsonpath</groupId>
|
<groupId>com.jayway.jsonpath</groupId>
|
||||||
<artifactId>json-path</artifactId>
|
<artifactId>json-path</artifactId>
|
||||||
<version>0.8.1</version>
|
<version>2.2.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.slf4j</groupId>
|
<groupId>org.slf4j</groupId>
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
package us.codecraft.webmagic.selector;
|
package us.codecraft.webmagic.selector;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.jayway.jsonpath.JsonPath;
|
import com.jayway.jsonpath.JsonPath;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JsonPath selector.<br>
|
* JsonPath selector.<br>
|
||||||
|
@ -32,12 +34,20 @@ public class JsonPathSelector implements Selector {
|
||||||
if (object instanceof List) {
|
if (object instanceof List) {
|
||||||
List list = (List) object;
|
List list = (List) object;
|
||||||
if (list != null && list.size() > 0) {
|
if (list != null && list.size() > 0) {
|
||||||
return list.iterator().next().toString();
|
return toString(list.iterator().next());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return object.toString();
|
return object.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String toString(Object object) {
|
||||||
|
if (object instanceof Map) {
|
||||||
|
return JSON.toJSONString(object);
|
||||||
|
} else {
|
||||||
|
return String.valueOf(object);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> selectList(String text) {
|
public List<String> selectList(String text) {
|
||||||
List<String> list = new ArrayList<String>();
|
List<String> list = new ArrayList<String>();
|
||||||
|
@ -48,10 +58,10 @@ public class JsonPathSelector implements Selector {
|
||||||
if (object instanceof List) {
|
if (object instanceof List) {
|
||||||
List<Object> items = (List<Object>) object;
|
List<Object> items = (List<Object>) object;
|
||||||
for (Object item : items) {
|
for (Object item : items) {
|
||||||
list.add(String.valueOf(item));
|
list.add(toString(item));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
list.add(String.valueOf(object));
|
list.add(toString(object));
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,4 +52,5 @@ public class JsonPathSelectorTest {
|
||||||
JSONObject object2=JSON.parseObject("{\"author\":\"Nigel Rees\",\"title\":\"Sayings of the Century\",\"category\":\"reference\",\"price\":8.95}");
|
JSONObject object2=JSON.parseObject("{\"author\":\"Nigel Rees\",\"title\":\"Sayings of the Century\",\"category\":\"reference\",\"price\":8.95}");
|
||||||
assertThat(object1).isEqualTo(object2);
|
assertThat(object1).isEqualTo(object2);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue