在 Rest Assured 中,getString() 将 4 位数字后的小数值四舍五入
In Rest Assured, getString() round off the decimal values after 4 digit
我有场景,我们需要从 json 响应正文中读取纬度和经度。
纬度和经度的值如下
"data": [{
"city": "Mumbai",
"country": "India",
"latitude": 19.0886993408,
"longitude": 72.8678970337
}
当我们尝试通过使用 JSONPATH 读取纬度和经度来验证 JSON 响应时
使用 getString()
然后它将小数点后 4 位数字四舍五入。
下面是java
中的代码
String key = item.getKey();
String value = item.getValue();
JsonPath jsonPathEvaluator = response.jsonPath();
String strjson = jsonPathEvaluator.getString(key).toString().replaceAll("\[\](){}]", "");
输出显示:
纬度:-19.0887 而不是 19.0886993408
您可以尝试使用JsonPath.config,如前所述here
您可以使用它为 JsonPath 提供自定义配置。
在这里,我只是想将我的数字数据转换为长小数范围双倍。
String key = item.getKey();
String value = item.getValue();
JsonPath jsonPathEvaluator = response.jsonPath();
JsonPath.config = new JsonPathConfig(JsonPathConfig.NumberReturnType.DOUBLE);
String strjson = jsonPathEvaluator.getString(key).toString().replaceAll("\[\](){}]", "");
/* String json = "{\n" +
" \"data\": {\n" +
" \"city\": \"Mumbai\",\n" +
" \"country\": \"India\",\n" +
" \"latitude\": 19.0886993408,\n" +
" \"longitude\": 72.8678970337\n" +
" }\n" +
"}";
JsonPath jsonPath = JsonPath.from(json);
JsonPath.config = new JsonPathConfig(JsonPathConfig.NumberReturnType.DOUBLE);
double strjson = jsonPath.get("data.latitude");
System.out.println(String.valueOf(strjson)); */
对我来说,打印结果低于输出。
19.0886993408
我有场景,我们需要从 json 响应正文中读取纬度和经度。 纬度和经度的值如下
"data": [{
"city": "Mumbai",
"country": "India",
"latitude": 19.0886993408,
"longitude": 72.8678970337
}
当我们尝试通过使用 JSONPATH 读取纬度和经度来验证 JSON 响应时
使用 getString()
然后它将小数点后 4 位数字四舍五入。
下面是java
中的代码String key = item.getKey();
String value = item.getValue();
JsonPath jsonPathEvaluator = response.jsonPath();
String strjson = jsonPathEvaluator.getString(key).toString().replaceAll("\[\](){}]", "");
输出显示:
纬度:-19.0887 而不是 19.0886993408
您可以尝试使用JsonPath.config,如前所述here
您可以使用它为 JsonPath 提供自定义配置。 在这里,我只是想将我的数字数据转换为长小数范围双倍。
String key = item.getKey();
String value = item.getValue();
JsonPath jsonPathEvaluator = response.jsonPath();
JsonPath.config = new JsonPathConfig(JsonPathConfig.NumberReturnType.DOUBLE);
String strjson = jsonPathEvaluator.getString(key).toString().replaceAll("\[\](){}]", "");
/* String json = "{\n" +
" \"data\": {\n" +
" \"city\": \"Mumbai\",\n" +
" \"country\": \"India\",\n" +
" \"latitude\": 19.0886993408,\n" +
" \"longitude\": 72.8678970337\n" +
" }\n" +
"}";
JsonPath jsonPath = JsonPath.from(json);
JsonPath.config = new JsonPathConfig(JsonPathConfig.NumberReturnType.DOUBLE);
double strjson = jsonPath.get("data.latitude");
System.out.println(String.valueOf(strjson)); */
对我来说,打印结果低于输出。
19.0886993408