保证jsonPath返回HashMap而不是LinkedHashMap

时间:2015-09-29 02:20:08

标签: java json rest-assured linkedhashmap rest-assured-jsonpath

这与Java有关。

我希望能够在从json响应中解析时更改JsonPath对象返回自身的默认行为,这样我仍然可以利用它带来的方法,如getMap(),getList()等。理想情况下,我希望所有JsonPath方法都将其Map对象作为LinkedHashMap而不是HashMap返回,或者至少将getMap()方法作为LinkedHashMap返回,这样我就可以保留键排序。

以下响应对象的json键排序与浏览器的json响应匹配:

option -l, count of arguments 1
   0 is user1  user2 user3
option -name, count of arguments 1
   0 is foo

但是,当您尝试通过jsonPath()从响应中获取对象或值时,由于JsonPath方法在幕后利用HashMap而不是LinkedHashMap这一事实,json键排序全部搞砸了。下面的代码片段确实:

Response response = given().get(urlQuery).then().extract().response();

我希望答案在于将配置更改为某些内容,或者在某处重载方法等等,因为我喜欢使用保证库来进行所有json解析,但我现在需要保留密钥排序。

除了上面提到的响应对象之外,如果我能够以最小的方式获取JsonPath方法以正确的顺序返回json,我会满意,如下面的代码示例所示:

Map map = response.jsonPath().getMap("path.to.a.map");

我想通过利用LinkedHashMap类型以某种方式获取JsonPath方法以保持顺序,但我不确定如何或在何处实现它。

0 个答案:

没有答案