dependency of portfolio-performance OBS-URL: https://build.opensuse.org/request/show/959655 OBS-URL: https://build.opensuse.org/package/show/Java:packages/json-path?expand=0&rev=1
400 lines
14 KiB
Diff
400 lines
14 KiB
Diff
diff -Nru JsonPath-json-path-2.1.0/json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonOrgJsonProvider.java JsonPath-json-path-2.1.0.json.org/json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonOrgJsonProvider.java
|
|
--- JsonPath-json-path-2.1.0/json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonOrgJsonProvider.java 2015-11-22 16:21:23.000000000 +0100
|
|
+++ JsonPath-json-path-2.1.0.json.org/json-path/src/main/java/com/jayway/jsonpath/spi/json/JsonOrgJsonProvider.java 1970-01-01 01:00:00.000000000 +0100
|
|
@@ -1,220 +0,0 @@
|
|
-package com.jayway.jsonpath.spi.json;
|
|
-
|
|
-import com.google.gson.JsonObject;
|
|
-import com.jayway.jsonpath.InvalidJsonException;
|
|
-import com.jayway.jsonpath.JsonPathException;
|
|
-import org.json.JSONArray;
|
|
-import org.json.JSONException;
|
|
-import org.json.JSONObject;
|
|
-import org.json.JSONTokener;
|
|
-import org.slf4j.Logger;
|
|
-import org.slf4j.LoggerFactory;
|
|
-
|
|
-import java.io.InputStream;
|
|
-import java.io.InputStreamReader;
|
|
-import java.io.UnsupportedEncodingException;
|
|
-import java.util.ArrayList;
|
|
-import java.util.Collection;
|
|
-import java.util.List;
|
|
-
|
|
-public class JsonOrgJsonProvider extends AbstractJsonProvider {
|
|
-
|
|
- private static final Logger logger = LoggerFactory.getLogger(GsonJsonProvider.class);
|
|
-
|
|
- @Override
|
|
- public Object parse(String json) throws InvalidJsonException {
|
|
- try {
|
|
- return new JSONTokener(json).nextValue();
|
|
- } catch (JSONException e) {
|
|
- throw new InvalidJsonException(e);
|
|
- }
|
|
- }
|
|
-
|
|
- @Override
|
|
- public Object parse(InputStream jsonStream, String charset) throws InvalidJsonException {
|
|
-
|
|
- try {
|
|
- return new JSONTokener(new InputStreamReader(jsonStream, charset)).nextValue();
|
|
- } catch (UnsupportedEncodingException e) {
|
|
- throw new JsonPathException(e);
|
|
- } catch (JSONException e) {
|
|
- throw new InvalidJsonException(e);
|
|
- }
|
|
- }
|
|
-
|
|
- @Override
|
|
- public Object unwrap(Object obj) {
|
|
- if(obj == JSONObject.NULL){
|
|
- return null;
|
|
- }
|
|
- return obj;
|
|
- }
|
|
-
|
|
- @Override
|
|
- public String toJson(Object obj) {
|
|
- return obj.toString();
|
|
- }
|
|
-
|
|
- @Override
|
|
- public Object createArray() {
|
|
- return new JSONArray();
|
|
- }
|
|
-
|
|
- @Override
|
|
- public Object createMap() {
|
|
- return new JsonObject();
|
|
- }
|
|
-
|
|
- @Override
|
|
- public boolean isArray(Object obj) {
|
|
- return (obj instanceof JSONArray || obj instanceof List);
|
|
- }
|
|
-
|
|
- @Override
|
|
- public Object getArrayIndex(Object obj, int idx) {
|
|
- try {
|
|
- return toJsonArray(obj).get(idx);
|
|
- } catch (JSONException e) {
|
|
- throw new JsonPathException(e);
|
|
- }
|
|
- }
|
|
-
|
|
- @Override
|
|
- public void setArrayIndex(Object array, int index, Object newValue) {
|
|
- try {
|
|
- if (!isArray(array)) {
|
|
- throw new UnsupportedOperationException();
|
|
- } else {
|
|
- toJsonArray(array).put(index, createJsonElement(newValue));
|
|
- }
|
|
- } catch (JSONException e) {
|
|
- throw new JsonPathException(e);
|
|
- }
|
|
- }
|
|
-
|
|
- @Override
|
|
- public Object getMapValue(Object obj, String key) {
|
|
- try {
|
|
- JSONObject jsonObject = toJsonObject(obj);
|
|
- Object o = jsonObject.get(key);
|
|
- if (!jsonObject.has(key)) {
|
|
- return UNDEFINED;
|
|
- } else {
|
|
- return unwrap(o);
|
|
- }
|
|
- } catch (JSONException e) {
|
|
- throw new JsonPathException(e);
|
|
- }
|
|
- }
|
|
-
|
|
- @Override
|
|
- public void setProperty(Object obj, Object key, Object value) {
|
|
- try {
|
|
- if (isMap(obj))
|
|
- toJsonObject(obj).put(key.toString(), createJsonElement(value));
|
|
- else {
|
|
- JSONArray array = toJsonArray(obj);
|
|
- int index;
|
|
- if (key != null) {
|
|
- index = key instanceof Integer ? (Integer) key : Integer.parseInt(key.toString());
|
|
- } else {
|
|
- index = array.length();
|
|
- }
|
|
- if (index == array.length()) {
|
|
- array.put(createJsonElement(value));
|
|
- } else {
|
|
- array.put(index, createJsonElement(value));
|
|
- }
|
|
- }
|
|
- } catch (JSONException e) {
|
|
- throw new JsonPathException(e);
|
|
- }
|
|
- }
|
|
-
|
|
- @SuppressWarnings("unchecked")
|
|
- public void removeProperty(Object obj, Object key) {
|
|
- if (isMap(obj))
|
|
- toJsonObject(obj).remove(key.toString());
|
|
- else {
|
|
- JSONArray array = toJsonArray(obj);
|
|
- int index = key instanceof Integer ? (Integer) key : Integer.parseInt(key.toString());
|
|
- array.remove(index);
|
|
- }
|
|
- }
|
|
-
|
|
- @Override
|
|
- public boolean isMap(Object obj) {
|
|
- return (obj instanceof JSONObject);
|
|
- }
|
|
-
|
|
- @Override
|
|
- public Collection<String> getPropertyKeys(Object obj) {
|
|
- JSONObject jsonObject = toJsonObject(obj);
|
|
- List<String> keys = new ArrayList<String>();
|
|
- try {
|
|
- for (int i = 0; i < jsonObject.names().length(); i++) {
|
|
- String key = (String) jsonObject.names().get(i);
|
|
- keys.add(key);
|
|
-
|
|
- }
|
|
- return keys;
|
|
- } catch (JSONException e) {
|
|
- throw new JsonPathException(e);
|
|
- }
|
|
- }
|
|
-
|
|
- @Override
|
|
- public int length(Object obj) {
|
|
- if (isArray(obj)) {
|
|
- return toJsonArray(obj).length();
|
|
- } else if (isMap(obj)) {
|
|
- return toJsonObject(obj).length();
|
|
- } else {
|
|
- if (obj instanceof String) {
|
|
- return ((String) obj).length();
|
|
- }
|
|
- }
|
|
- throw new JsonPathException("length operation can not applied to " + obj != null ? obj.getClass().getName() : "null");
|
|
- }
|
|
-
|
|
- @Override
|
|
- public Iterable<?> toIterable(Object obj) {
|
|
- try {
|
|
- if (isArray(obj)) {
|
|
- JSONArray arr = toJsonArray(obj);
|
|
- List<Object> values = new ArrayList<Object>(arr.length());
|
|
- for (int i = 0; i < arr.length(); i++) {
|
|
- values.add(unwrap(arr.get(i)));
|
|
- }
|
|
- return values;
|
|
- } else {
|
|
- JSONObject jsonObject = toJsonObject(obj);
|
|
- List<Object> values = new ArrayList<Object>();
|
|
-
|
|
- for (int i = 0; i < jsonObject.names().length(); i++) {
|
|
- String key = (String) jsonObject.names().get(i);
|
|
- Object val = jsonObject.get(key);
|
|
- values.add(unwrap(val));
|
|
-
|
|
- }
|
|
-
|
|
- return values;
|
|
- }
|
|
- } catch (JSONException e) {
|
|
- throw new JsonPathException(e);
|
|
- }
|
|
- }
|
|
-
|
|
- private Object createJsonElement(Object o) {
|
|
- return o;
|
|
- }
|
|
-
|
|
- private JSONArray toJsonArray(Object o) {
|
|
- return (JSONArray) o;
|
|
- }
|
|
-
|
|
- private JSONObject toJsonObject(Object o) {
|
|
- return (JSONObject) o;
|
|
- }
|
|
-
|
|
-}
|
|
diff -Nru JsonPath-json-path-2.1.0/json-path/src/main/java/com/jayway/jsonpath/spi/mapper/JsonOrgMappingProvider.java JsonPath-json-path-2.1.0.json.org/json-path/src/main/java/com/jayway/jsonpath/spi/mapper/JsonOrgMappingProvider.java
|
|
--- JsonPath-json-path-2.1.0/json-path/src/main/java/com/jayway/jsonpath/spi/mapper/JsonOrgMappingProvider.java 2015-11-22 16:21:23.000000000 +0100
|
|
+++ JsonPath-json-path-2.1.0.json.org/json-path/src/main/java/com/jayway/jsonpath/spi/mapper/JsonOrgMappingProvider.java 1970-01-01 01:00:00.000000000 +0100
|
|
@@ -1,58 +0,0 @@
|
|
-package com.jayway.jsonpath.spi.mapper;
|
|
-
|
|
-import com.jayway.jsonpath.Configuration;
|
|
-import com.jayway.jsonpath.TypeRef;
|
|
-import org.json.JSONArray;
|
|
-import org.json.JSONObject;
|
|
-
|
|
-import java.util.ArrayList;
|
|
-import java.util.HashMap;
|
|
-import java.util.List;
|
|
-import java.util.Map;
|
|
-
|
|
-public class JsonOrgMappingProvider implements MappingProvider {
|
|
- @Override
|
|
- public <T> T map(Object source, Class<T> targetType, Configuration configuration) {
|
|
- if(source == null){
|
|
- return null;
|
|
- }
|
|
- if(targetType.equals(Object.class) || targetType.equals(List.class) || targetType.equals(Map.class)){
|
|
- return (T) mapToObject(source);
|
|
- }
|
|
- return (T)source;
|
|
- }
|
|
-
|
|
- @Override
|
|
- public <T> T map(Object source, TypeRef<T> targetType, Configuration configuration) {
|
|
- throw new UnsupportedOperationException("JsonOrg provider does not support TypeRef! Use a Jackson or Gson based provider");
|
|
- }
|
|
-
|
|
-
|
|
- private Object mapToObject(Object source){
|
|
- if(source instanceof JSONArray){
|
|
- List<Object> mapped = new ArrayList<Object>();
|
|
- JSONArray array = (JSONArray) source;
|
|
-
|
|
- for (int i = 0; i < array.length(); i++){
|
|
- mapped.add(mapToObject(array.get(i)));
|
|
- }
|
|
-
|
|
- return mapped;
|
|
- }
|
|
- else if (source instanceof JSONObject){
|
|
- Map<String, Object> mapped = new HashMap<String, Object>();
|
|
- JSONObject obj = (JSONObject) source;
|
|
-
|
|
- for (Object o : obj.keySet()) {
|
|
- String key = o.toString();
|
|
- mapped.put(key, mapToObject(obj.get(key)));
|
|
- }
|
|
- return mapped;
|
|
- }
|
|
- else if (source == JSONObject.NULL){
|
|
- return null;
|
|
- } else {
|
|
- return source;
|
|
- }
|
|
- }
|
|
-}
|
|
diff -Nru JsonPath-json-path-2.1.0/json-path/src/test/java/com/jayway/jsonpath/BaseTest.java JsonPath-json-path-2.1.0.json.org/json-path/src/test/java/com/jayway/jsonpath/BaseTest.java
|
|
--- JsonPath-json-path-2.1.0/json-path/src/test/java/com/jayway/jsonpath/BaseTest.java 2015-11-22 16:21:23.000000000 +0100
|
|
+++ JsonPath-json-path-2.1.0.json.org/json-path/src/test/java/com/jayway/jsonpath/BaseTest.java 2016-06-08 16:42:52.250197491 +0200
|
|
@@ -5,23 +5,15 @@
|
|
import com.jayway.jsonpath.spi.json.GsonJsonProvider;
|
|
import com.jayway.jsonpath.spi.json.JacksonJsonNodeJsonProvider;
|
|
import com.jayway.jsonpath.spi.json.JacksonJsonProvider;
|
|
-import com.jayway.jsonpath.spi.json.JsonOrgJsonProvider;
|
|
import com.jayway.jsonpath.spi.json.JsonSmartJsonProvider;
|
|
import com.jayway.jsonpath.spi.mapper.GsonMappingProvider;
|
|
import com.jayway.jsonpath.spi.mapper.JacksonMappingProvider;
|
|
-import com.jayway.jsonpath.spi.mapper.JsonOrgMappingProvider;
|
|
import com.jayway.jsonpath.spi.mapper.JsonSmartMappingProvider;
|
|
|
|
import java.util.HashMap;
|
|
|
|
public class BaseTest {
|
|
|
|
- public static final Configuration JSON_ORG_CONFIGURATION = Configuration
|
|
- .builder()
|
|
- .mappingProvider(new JsonOrgMappingProvider())
|
|
- .jsonProvider(new JsonOrgJsonProvider())
|
|
- .build();
|
|
-
|
|
public static final Configuration GSON_CONFIGURATION = Configuration
|
|
.builder()
|
|
.mappingProvider(new GsonMappingProvider())
|
|
diff -Nru JsonPath-json-path-2.1.0/json-path/src/test/java/com/jayway/jsonpath/Configurations.java JsonPath-json-path-2.1.0.json.org/json-path/src/test/java/com/jayway/jsonpath/Configurations.java
|
|
--- JsonPath-json-path-2.1.0/json-path/src/test/java/com/jayway/jsonpath/Configurations.java 2015-11-22 16:21:23.000000000 +0100
|
|
+++ JsonPath-json-path-2.1.0.json.org/json-path/src/test/java/com/jayway/jsonpath/Configurations.java 2016-06-08 16:44:52.263228220 +0200
|
|
@@ -3,23 +3,15 @@
|
|
import com.jayway.jsonpath.spi.json.GsonJsonProvider;
|
|
import com.jayway.jsonpath.spi.json.JacksonJsonNodeJsonProvider;
|
|
import com.jayway.jsonpath.spi.json.JacksonJsonProvider;
|
|
-import com.jayway.jsonpath.spi.json.JsonOrgJsonProvider;
|
|
import com.jayway.jsonpath.spi.json.JsonSmartJsonProvider;
|
|
import com.jayway.jsonpath.spi.mapper.GsonMappingProvider;
|
|
import com.jayway.jsonpath.spi.mapper.JacksonMappingProvider;
|
|
-import com.jayway.jsonpath.spi.mapper.JsonOrgMappingProvider;
|
|
import com.jayway.jsonpath.spi.mapper.JsonSmartMappingProvider;
|
|
|
|
import java.util.Arrays;
|
|
|
|
public class Configurations {
|
|
|
|
- public static final Configuration JSON_ORG_CONFIGURATION = Configuration
|
|
- .builder()
|
|
- .mappingProvider(new JsonOrgMappingProvider())
|
|
- .jsonProvider(new JsonOrgJsonProvider())
|
|
- .build();
|
|
-
|
|
public static final Configuration GSON_CONFIGURATION = Configuration
|
|
.builder()
|
|
.mappingProvider(new GsonMappingProvider())
|
|
@@ -50,7 +42,6 @@
|
|
,GSON_CONFIGURATION
|
|
,JACKSON_CONFIGURATION
|
|
,JACKSON_JSON_NODE_CONFIGURATION
|
|
- ,JSON_ORG_CONFIGURATION
|
|
);
|
|
}
|
|
|
|
diff -Nru JsonPath-json-path-2.1.0/json-path/src/test/java/com/jayway/jsonpath/JsonOrgJsonProviderTest.java JsonPath-json-path-2.1.0.json.org/json-path/src/test/java/com/jayway/jsonpath/JsonOrgJsonProviderTest.java
|
|
--- JsonPath-json-path-2.1.0/json-path/src/test/java/com/jayway/jsonpath/JsonOrgJsonProviderTest.java 2015-11-22 16:21:23.000000000 +0100
|
|
+++ JsonPath-json-path-2.1.0.json.org/json-path/src/test/java/com/jayway/jsonpath/JsonOrgJsonProviderTest.java 1970-01-01 01:00:00.000000000 +0100
|
|
@@ -1,47 +0,0 @@
|
|
-package com.jayway.jsonpath;
|
|
-
|
|
-import org.json.JSONArray;
|
|
-import org.json.JSONObject;
|
|
-import org.junit.Test;
|
|
-
|
|
-import java.util.List;
|
|
-import java.util.Map;
|
|
-
|
|
-import static com.jayway.jsonpath.JsonPath.using;
|
|
-import static org.assertj.core.api.Assertions.assertThat;
|
|
-
|
|
-public class JsonOrgJsonProviderTest extends BaseTest {
|
|
-
|
|
-
|
|
- @Test
|
|
- public void an_object_can_be_read() {
|
|
-
|
|
- JSONObject book = using(JSON_ORG_CONFIGURATION).parse(JSON_DOCUMENT).read("$.store.book[0]");
|
|
-
|
|
- assertThat(book.get("author").toString()).isEqualTo("Nigel Rees");
|
|
- }
|
|
-
|
|
- @Test
|
|
- public void a_property_can_be_read() {
|
|
-
|
|
- String category = using(JSON_ORG_CONFIGURATION).parse(JSON_DOCUMENT).read("$.store.book[0].category");
|
|
-
|
|
- assertThat(category).isEqualTo("reference");
|
|
- }
|
|
-
|
|
- @Test
|
|
- public void a_filter_can_be_applied() {
|
|
-
|
|
- JSONArray fictionBooks = using(JSON_ORG_CONFIGURATION).parse(JSON_DOCUMENT).read("$.store.book[?(@.category == 'fiction')]");
|
|
-
|
|
- assertThat(fictionBooks.length()).isEqualTo(3);
|
|
- }
|
|
-
|
|
- @Test
|
|
- public void result_can_be_mapped_to_object() {
|
|
-
|
|
- List<Map<String, Object>> books = using(JSON_ORG_CONFIGURATION).parse(JSON_DOCUMENT).read("$.store.book", List.class);
|
|
-
|
|
- assertThat(books.size()).isEqualTo(4);
|
|
- }
|
|
-}
|