这与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方法以保持顺序,但我不确定如何或在何处实现它。