Browse Source

Merge pull request #42 from jochenberger/update-json-smart

Update json smart, small improvements
pull/44/head
kallestenflo 10 years ago
parent
commit
747ed48d0d
  1. 15
      json-path/src/main/java/com/jayway/jsonpath/internal/Utils.java
  2. 23
      json-path/src/main/java/com/jayway/jsonpath/internal/spi/json/JsonSmartJsonProvider.java
  3. 4
      pom.xml

15
json-path/src/main/java/com/jayway/jsonpath/internal/Utils.java

@ -1,6 +1,5 @@
package com.jayway.jsonpath.internal;
import com.jayway.jsonpath.InvalidConversionException;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@ -13,10 +12,11 @@ import java.io.ObjectStreamClass;
import java.io.OutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class Utils {
public final class Utils {
public static final String CR = System.getProperty("line.separator");
@ -28,7 +28,13 @@ public class Utils {
* @return
*/
public static List<Integer> createRange(int start, int end) {
List<Integer> range = new ArrayList<Integer>();
if (end <= start) {
throw new IllegalArgumentException("Cannot create range from " + start + " to " + end + ", end must be greater than start.");
}
if (start == end-1) {
return Collections.emptyList();
}
List<Integer> range = new ArrayList<Integer>(end-start-1);
for (int i = start; i < end; i++) {
range.add(i);
}
@ -41,7 +47,6 @@ public class Utils {
if (!iter.hasNext()) {
return "";
}
StringBuilder buffer = new StringBuilder();
buffer.append(wrap).append(iter.next()).append(wrap);
while (iter.hasNext()) {
@ -470,4 +475,6 @@ public class Utils {
}
}
private Utils () {}
}

23
json-path/src/main/java/com/jayway/jsonpath/internal/spi/json/JsonSmartJsonProvider.java

@ -16,9 +16,11 @@ package com.jayway.jsonpath.internal.spi.json;
import com.jayway.jsonpath.InvalidJsonException;
import com.jayway.jsonpath.spi.json.Mode;
import net.minidev.json.JSONArray;
import net.minidev.json.JSONObject;
import net.minidev.json.parser.ContainerFactory;
import net.minidev.json.mapper.AMapper;
import net.minidev.json.mapper.DefaultMapperOrdered;
import net.minidev.json.parser.JSONParser;
import net.minidev.json.parser.ParseException;
@ -30,10 +32,9 @@ import java.util.Map;
public class JsonSmartJsonProvider extends AbstractJsonProvider {
private Mode mode;
private final Mode mode;
private ContainerFactory containerFactory = ContainerFactory.FACTORY_ORDERED;
//private ContainerFactory containerFactory = ContainerFactory.FACTORY_SIMPLE;
private final static AMapper<?> orderedMapper = DefaultMapperOrdered.DEFAULT;
public JsonSmartJsonProvider() {
this(Mode.SLACK);
@ -43,17 +44,17 @@ public class JsonSmartJsonProvider extends AbstractJsonProvider {
this.mode = mode;
}
public Map<String, Object> createMap() {
return containerFactory.createObjectContainer();
public Object createMap() {
return orderedMapper.createObject();
}
public List<Object> createArray() {
return containerFactory.createArrayContainer();
public Object createArray() {
return orderedMapper.createArray();
}
public Object parse(String json) {
try {
return createParser().parse(json, containerFactory);
return createParser().parse(json, orderedMapper);
} catch (ParseException e) {
throw new InvalidJsonException(e);
}
@ -62,7 +63,7 @@ public class JsonSmartJsonProvider extends AbstractJsonProvider {
@Override
public Object parse(Reader jsonReader) throws InvalidJsonException {
try {
return createParser().parse(jsonReader, containerFactory);
return createParser().parse(jsonReader, orderedMapper);
} catch (ParseException e) {
throw new InvalidJsonException(e);
}
@ -71,7 +72,7 @@ public class JsonSmartJsonProvider extends AbstractJsonProvider {
@Override
public Object parse(InputStream jsonStream) throws InvalidJsonException {
try {
return createParser().parse(new InputStreamReader(jsonStream), containerFactory);
return createParser().parse(new InputStreamReader(jsonStream), orderedMapper);
} catch (ParseException e) {
throw new InvalidJsonException(e);
}

4
pom.xml

@ -61,7 +61,7 @@
<commons-io.version>2.4</commons-io.version>
<hamcrest.version>1.3</hamcrest.version>
<jackson.version>2.4.0</jackson.version>
<json-smart.version>1.2</json-smart.version>
<json-smart.version>2.0</json-smart.version>
</properties>
<scm>
<url>http://github.com/jayway/JsonPath/tree/${scm.branch}</url>
@ -287,4 +287,4 @@
</dependency>
</dependencies>
</project>
</project>

Loading…
Cancel
Save