Files
json-path/json-path-2.1.0-JsonOrg.patch

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);
- }
-}