Browse Source

JSON references

pull/1/head
Dave 14 years ago committed by David Baldwin
parent
commit
2e6bc59ec3
  1. 13
      json-path-assert/src/test/java/com/jayway/jsonassert/GsonJsonAssert.java
  2. 13
      json-path-assert/src/test/java/com/jayway/jsonassert/MiniJsonAssert.java
  3. 31
      json-path/src/main/java/com/jayway/jsonpath/filter/JsonType.java
  4. 60
      json-path/src/main/java/com/jayway/jsonpath/filter/TypeFilter.java
  5. 13
      json-path/src/test/java/com/jayway/jsonpath/GsonJsonAssert.java
  6. 13
      json-path/src/test/java/com/jayway/jsonpath/MiniJsonAssert.java

13
json-path-assert/src/test/java/com/jayway/jsonassert/GsonJsonAssert.java

@ -0,0 +1,13 @@
package com.jayway.jsonassert;
import org.junit.Before;
import com.jayway.jsonpath.json.JsonFactory;
public class GsonJsonAssert extends JsonAssertTest {
public void init_factory(){
JsonFactory.setInstance(com.jayway.jsonpath.json.gson.GsonJsonFactory.getInstance());
factory = JsonFactory.getInstance();
}
}

13
json-path-assert/src/test/java/com/jayway/jsonassert/MiniJsonAssert.java

@ -0,0 +1,13 @@
package com.jayway.jsonassert;
import org.junit.Before;
import com.jayway.jsonpath.json.JsonFactory;
public class MiniJsonAssert extends JsonAssertTest {
@Before
public void init_factory(){
factory.setInstance(com.jayway.jsonpath.json.minidev.MiniJsonFactory.getInstance());
factory = JsonFactory.getInstance();
}
}

31
json-path/src/main/java/com/jayway/jsonpath/filter/JsonType.java

@ -0,0 +1,31 @@
package com.jayway.jsonpath.filter;
public enum JsonType{
JsonNull("null"),
JsonArray("collection"),
JsonObject("object"),
JsonPrimitive("value");
private String text;
JsonType(String text) {
this.text = text;
}
public String getText() {
return this.text;
}
public static JsonType fromString(String text) {
if (text != null) {
for (JsonType b : JsonType.values()) {
if (text.equalsIgnoreCase(b.text)) {
return b;
}
}
}
return null;
}
}

60
json-path/src/main/java/com/jayway/jsonpath/filter/TypeFilter.java

@ -0,0 +1,60 @@
package com.jayway.jsonpath.filter;
import com.jayway.jsonpath.json.JsonArray;
import com.jayway.jsonpath.json.JsonElement;
import com.jayway.jsonpath.json.JsonException;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import net.minidev.json.JSONValue;
/**
* Created by IntelliJ IDEA.
* User: kallestenflo
* Date: 2/15/11
* Time: 8:23 PM
*/
public class TypeFilter extends JsonPathFilterBase {
//@Autowired
public com.jayway.jsonpath.json.JsonFactory factory = com.jayway.jsonpath.json.minidev.MiniJsonFactory.getInstance();
public static final Pattern PATTERN = Pattern.compile("\\((collection|object|value)\\)");
private final String pathFragment;
public TypeFilter(String pathFragment) {
this.pathFragment = pathFragment;
}
@Override
public String getPathSegment() throws JsonException {
return pathFragment;
}
@Override
public List<JsonElement> apply(JsonElement element) throws JsonException {
List<JsonElement> result = new ArrayList<JsonElement>();
String prop = getFilterProperty();
JsonType v = JsonType.fromString(pathFragment.substring(1,pathFragment.length()-1));
if(element.isJsonType(v))
result.add(element);
return result;
}
private String getFilterProperty() {
Matcher matcher = PATTERN.matcher(pathFragment);
if (matcher.matches()) {
return matcher.group(1);
}
throw new IllegalArgumentException("invalid list filter property");
}
}

13
json-path/src/test/java/com/jayway/jsonpath/GsonJsonAssert.java

@ -0,0 +1,13 @@
package com.jayway.jsonpath;
import org.junit.Before;
import com.jayway.jsonpath.json.JsonFactory;
public class GsonJsonAssert extends JsonPathTest {
public void init_factory(){
JsonFactory.setInstance(new com.jayway.jsonpath.json.gson.GsonJsonFactory());
factory = JsonFactory.getInstance();
}
}

13
json-path/src/test/java/com/jayway/jsonpath/MiniJsonAssert.java

@ -0,0 +1,13 @@
package com.jayway.jsonpath;
import org.junit.Before;
import com.jayway.jsonpath.json.JsonFactory;
public class MiniJsonAssert extends JsonPathTest {
public void init_factory(){
JsonFactory.setInstance(new com.jayway.jsonpath.json.minidev.MiniJsonFactory());
factory = JsonFactory.getInstance();
}
}
Loading…
Cancel
Save