|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.jayway.restassured.path.json.JsonPath
public class JsonPath
JsonPath is an alternative to using XPath for easily getting values from a JSON document. It follows the Groovy dot notation syntax when getting an object from the document. You can regard it as an alternative to XPath for XML. E.g. given the following JSON document:
{ "store": {
"book": [
{ "category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{ "category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{ "category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{ "category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
}
}
To get a list of all book categories:
List<String> categories = with(JSON).get("store.book.category");
Get the first book category:
String category = with(JSON).get("store.book[0].category");
Get the last book category:
String category = with(JSON).get("store.book[-1].category");
Get all books with price between 5 and 15:
List<Map> books = with(JSON).get("store.book.findAll { book -> book.price >= 5 && book.price <= 15 }");
| Constructor Summary | |
|---|---|
JsonPath(File file)
Instantiate a new JsonPath instance. |
|
JsonPath(InputStream stream)
Instantiate a new JsonPath instance. |
|
JsonPath(Reader reader)
Instantiate a new JsonPath instance. |
|
JsonPath(String text)
Instantiate a new JsonPath instance. |
|
JsonPath(URL url)
Instantiate a new JsonPath instance. |
|
| Method Summary | ||
|---|---|---|
static JsonPath |
from(File file)
Instantiate a new JsonPath instance. |
|
static JsonPath |
from(InputStream stream)
Instantiate a new JsonPath instance. |
|
static JsonPath |
from(Reader reader)
Instantiate a new JsonPath instance. |
|
static JsonPath |
from(String text)
Instantiate a new JsonPath instance. |
|
static JsonPath |
from(URL url)
Instantiate a new JsonPath instance. |
|
|
get()
Get a JSON graph with no named root element as a Java object. |
|
|
get(String path)
Get the result of an JSON path expression as a boolean. |
|
boolean |
getBoolean(String path)
Get the result of an JSON path expression as a boolean |
|
byte |
getByte(String path)
Get the result of an JSON path expression as a byte. |
|
char |
getChar(String path)
Get the result of an JSON path expression as a char. |
|
double |
getDouble(String path)
Get the result of an JSON path expression as a double. |
|
float |
getFloat(String path)
Get the result of an JSON path expression as a float. |
|
int |
getInt(String path)
Get the result of an JSON path expression as an int. |
|
|
getJsonObject(String path)
|
|
|
getList(String path)
Get the result of an JSON path expression as a list. |
|
|
getList(String path,
Class<T> genericType)
Get the result of an JSON path expression as a list. |
|
long |
getLong(String path)
Get the result of an JSON path expression as a long. |
|
|
getMap(String path)
Get the result of an JSON path expression as a map. |
|
|
getMap(String path,
Class<K> keyType,
Class<V> valueType)
Get the result of an JSON path expression as a map. |
|
|
getObject(String path,
Class<T> objectType)
Get the result of a JSON path expression as a java Object. |
|
short |
getShort(String path)
Get the result of an JSON path expression as a short. |
|
String |
getString(String path)
Get the result of an JSON path expression as a string. |
|
static JsonPath |
given(File file)
Instantiate a new JsonPath instance. |
|
static JsonPath |
given(InputStream stream)
Instantiate a new JsonPath instance. |
|
static JsonPath |
given(Reader reader)
Instantiate a new JsonPath instance. |
|
static JsonPath |
given(String text)
Instantiate a new JsonPath instance. |
|
static JsonPath |
given(URL url)
Instantiate a new JsonPath instance. |
|
JsonPath |
setRoot(String rootPath)
Set the root path of the document so that you don't need to write the entire path. |
|
static JsonPath |
with(File file)
Instantiate a new JsonPath instance. |
|
static JsonPath |
with(InputStream stream)
Instantiate a new JsonPath instance. |
|
static JsonPath |
with(Reader reader)
Instantiate a new JsonPath instance. |
|
static JsonPath |
with(String text)
Instantiate a new JsonPath instance. |
|
static JsonPath |
with(URL url)
Instantiate a new JsonPath instance. |
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public JsonPath(String text)
text - The text containing the JSON documentpublic JsonPath(URL url)
url - The url containing the JSON documentpublic JsonPath(InputStream stream)
stream - The stream containing the JSON documentpublic JsonPath(File file)
file - The file containing the JSON documentpublic JsonPath(Reader reader)
reader - The reader containing the JSON document| Method Detail |
|---|
public <T> T get()
get("");
or
get("$");
public <T> T get(String path)
path - The JSON path.
public boolean getBoolean(String path)
path - The JSON path.
public char getChar(String path)
path - The JSON path.
public int getInt(String path)
path - The JSON path.
public byte getByte(String path)
path - The JSON path.
public short getShort(String path)
path - The JSON path.
public float getFloat(String path)
path - The JSON path.
public double getDouble(String path)
path - The JSON path.
public long getLong(String path)
path - The JSON path.
public String getString(String path)
path - The JSON path.
public <T> List<T> getList(String path)
T - The list typepath - The JSON path.
public <T> List<T> getList(String path,
Class<T> genericType)
T - The typepath - The JSON path.genericType - The generic list type
public <K,V> Map<K,V> getMap(String path)
K - The type of the expected keyV - The type of the expected valuepath - The JSON path.
public <K,V> Map<K,V> getMap(String path,
Class<K> keyType,
Class<V> valueType)
K - The type of the expected keyV - The type of the expected valuepath - The JSON path.keyType - The type of the expected keyvalueType - The type of the expected value
public <T> T getObject(String path,
Class<T> objectType)
{ "store": {
"book": [
{ "category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{ "category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{ "category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{ "category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
}
}
And a Java object like this:
public class Book {
private String category;
private String author;
private String title;
private String isbn;
private float price;
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
}
Then
Book book = from(JSON).getObject("store.book[2]", Book.class);
maps the second book to a Book instance.
T - The type of the expected objectpath - The path to the object to mapobjectType - The class type of the expected object
public static JsonPath given(String text)
text - The text containing the JSON documentpublic static JsonPath given(InputStream stream)
stream - The stream containing the JSON documentpublic static JsonPath given(File file)
file - The file containing the JSON documentpublic static JsonPath given(Reader reader)
reader - The reader containing the JSON documentpublic static JsonPath given(URL url)
url - The URL containing the JSON documentpublic static JsonPath with(InputStream stream)
stream - The stream containing the JSON documentpublic static JsonPath with(String text)
text - The text containing the JSON documentpublic static JsonPath with(File file)
file - The file containing the JSON documentpublic static JsonPath with(Reader reader)
reader - The reader containing the JSON documentpublic static JsonPath with(URL url)
url - The URI containing the JSON documentpublic static JsonPath from(InputStream stream)
stream - The stream containing the JSON documentpublic static JsonPath from(String text)
text - The text containing the JSON documentpublic static JsonPath from(File file)
file - The file containing the JSON documentpublic static JsonPath from(Reader reader)
reader - The reader containing the JSON documentpublic static JsonPath from(URL url)
url - The URI containing the JSON documentpublic JsonPath setRoot(String rootPath)
final JsonPath jsonPath = new JsonPath(JSON).setRoot("store.book");
assertThat(jsonPath.getInt("size()"), equalTo(4));
assertThat(jsonPath.getList("author", String.class), hasItem("J. R. R. Tolkien"));
rootPath - The root path to use.public <T> T getJsonObject(String path)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||