如何用rest-assured解析带动态计数器的JSON响应提取formattedBasePrice
rest-assured 提取动态键下字段最简实现
你可以直接利用 rest-assured 内置 JsonPath 支持的 Groovy GPath 通配符语法完成提取,不需要提前知道sales下的动态数字键数量,也不需要手动遍历节点:
- 核心提取路径为
sales.*.formattedBasePrice,其中*通配符会匹配sales节点下的所有直接子节点,自动收集所有子节点的formattedBasePrice字段值。 - 完整代码示例:
import io.restassured.response.Response; import java.util.List; import static io.restassured.RestAssured.given; public class PriceExtractor { public static void main(String[] args) { // 发送请求获取响应 Response response = given() .when() .get("你的请求接口URL") .then() .statusCode(200) // 可选,添加响应状态校验 .extract() .response(); // 一行代码提取所有formattedBasePrice到List,要转数组可直接调用toArray()方法 List<String> formattedBasePrices = response.jsonPath().getList("sales.*.formattedBasePrice", String.class); // 测试输出,针对你给出的JSON样例,输出结果为 [$9.99, $29.99] System.out.println(formattedBasePrices); } }
如果需要转为String数组,只需要补充:
String[] priceArray = formattedBasePrices.toArray(new String[0]);
内容的提问来源于stack exchange,提问作者Forged
相关产品推荐
相关产品推荐

