Class JsonPathResultMatchers
- java.lang.Object
- org.springframework.test.web.servlet.result.JsonPathResultMatchers
public class JsonPathResultMatchers extends Object
Factory for assertions on the response content using JsonPath expressions.An instance of this class is typically accessed via
MockMvcResultMatchers.jsonPath(String, Object...)
.- Since:
- 3.2
- Author:
- Rossen Stoyanchev, Craig Andrews, Sam Brannen, Brian Clozel
Constructor Summary
Constructors Modifier Constructor Description protected
JsonPathResultMatchers(String expression, Object... args)
Protected constructor.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ResultMatcher
doesNotExist()
Evaluate the JSON path expression against the response content and assert that a non-null value does not exist at the given path.ResultMatcher
doesNotHaveJsonPath()
Evaluate the JSON path expression against the suppliedcontent
and assert that a value, includingnull
values, does not exist at the given path.ResultMatcher
exists()
Evaluate the JSON path expression against the response content and assert that a non-null value, possibly an empty array or map, exists at the given path.ResultMatcher
hasJsonPath()
Evaluate the JSON path expression against the response content and assert that a value, possiblynull
, exists.ResultMatcher
isArray()
Evaluate the JSON path expression against the response content and assert that the result is an array.ResultMatcher
isBoolean()
Evaluate the JSON path expression against the response content and assert that the result is aBoolean
.ResultMatcher
isEmpty()
Evaluate the JSON path expression against the response content and assert that an empty value exists at the given path.ResultMatcher
isMap()
Evaluate the JSON path expression against the response content and assert that the result is aMap
.ResultMatcher
isNotEmpty()
Evaluate the JSON path expression against the response content and assert that a non-empty value exists at the given path.ResultMatcher
isNumber()
Evaluate the JSON path expression against the response content and assert that the result is aNumber
.ResultMatcher
isString()
Evaluate the JSON path expression against the response content and assert that the result is aString
.JsonPathResultMatchers
prefix(String prefix)
Configures the currentJsonPathResultMatchers
instance to verify that the JSON payload is prepended with the given prefix.ResultMatcher
value(Object expectedValue)
Evaluate the JSON path expression against the response content and assert that the result is equal to the supplied value.<T> ResultMatcher
value(Matcher<T> matcher)
Evaluate the JSON path expression against the response content and assert the resulting value with the given HamcrestMatcher
.<T> ResultMatcher
value(Matcher<T> matcher, Class<T> targetType)
An overloaded variant ofvalue(Matcher)
that also accepts a target type for the resulting value that the matcher can work reliably against.
Constructor Detail
JsonPathResultMatchers
protected JsonPathResultMatchers(String expression, Object... args)
Protected constructor.Use
MockMvcResultMatchers.jsonPath(String, Object...)
orMockMvcResultMatchers.jsonPath(String, Matcher)
.- Parameters:
expression
- theJsonPath
expression; nevernull
or emptyargs
- arguments to parameterize theJsonPath
expression with, using formatting specifiers defined inString.format(String, Object...)
Method Detail
prefix
public JsonPathResultMatchers prefix(String prefix)
Configures the currentJsonPathResultMatchers
instance to verify that the JSON payload is prepended with the given prefix.Use this method if the JSON payloads are prefixed to avoid Cross Site Script Inclusion (XSSI) attacks.
- Parameters:
prefix
- the string prefix prepended to the actual JSON payload- Since:
- 4.3
value
public <T> ResultMatcher value(Matcher<T> matcher)
Evaluate the JSON path expression against the response content and assert the resulting value with the given HamcrestMatcher
.- See Also:
value(Matcher, Class)
,value(Object)
value
public <T> ResultMatcher value(Matcher<T> matcher, Class<T> targetType)
An overloaded variant ofvalue(Matcher)
that also accepts a target type for the resulting value that the matcher can work reliably against.This can be useful for matching numbers reliably — for example, to coerce an integer into a double.
- Since:
- 4.3.15
- See Also:
value(Matcher)
,value(Object)
value
public ResultMatcher value(Object expectedValue)
Evaluate the JSON path expression against the response content and assert that the result is equal to the supplied value.- See Also:
value(Matcher)
,value(Matcher, Class)
exists
public ResultMatcher exists()
Evaluate the JSON path expression against the response content and assert that a non-null value, possibly an empty array or map, exists at the given path.If the JSON path expression is not definite, this method asserts that the value at the given path is not empty.
doesNotExist
public ResultMatcher doesNotExist()
Evaluate the JSON path expression against the response content and assert that a non-null value does not exist at the given path.If the JSON path expression is not definite, this method asserts that the value at the given path is empty.
isEmpty
public ResultMatcher isEmpty()
Evaluate the JSON path expression against the response content and assert that an empty value exists at the given path.For the semantics of empty, consult the Javadoc for
ObjectUtils.isEmpty(Object)
.- Since:
- 4.2.1
- See Also:
isNotEmpty()
,exists()
,doesNotExist()
isNotEmpty
public ResultMatcher isNotEmpty()
Evaluate the JSON path expression against the response content and assert that a non-empty value exists at the given path.For the semantics of empty, consult the Javadoc for
ObjectUtils.isEmpty(Object)
.- Since:
- 4.2.1
- See Also:
isEmpty()
,exists()
,doesNotExist()
hasJsonPath
public ResultMatcher hasJsonPath()
Evaluate the JSON path expression against the response content and assert that a value, possiblynull
, exists.If the JSON path expression is not definite, this method asserts that the list of values at the given path is not empty.
- Since:
- 5.0.3
- See Also:
exists()
,isNotEmpty()
doesNotHaveJsonPath
public ResultMatcher doesNotHaveJsonPath()
Evaluate the JSON path expression against the suppliedcontent
and assert that a value, includingnull
values, does not exist at the given path.If the JSON path expression is not definite, this method asserts that the list of values at the given path is empty.
- Since:
- 5.0.3
- See Also:
doesNotExist()
,isEmpty()
isString
public ResultMatcher isString()
Evaluate the JSON path expression against the response content and assert that the result is aString
.- Since:
- 4.2.1
isBoolean
public ResultMatcher isBoolean()
Evaluate the JSON path expression against the response content and assert that the result is aBoolean
.- Since:
- 4.2.1
isNumber
public ResultMatcher isNumber()
Evaluate the JSON path expression against the response content and assert that the result is aNumber
.- Since:
- 4.2.1
isArray
public ResultMatcher isArray()
Evaluate the JSON path expression against the response content and assert that the result is an array.
isMap
public ResultMatcher isMap()
Evaluate the JSON path expression against the response content and assert that the result is aMap
.- Since:
- 4.2.1