如何在JMeter中从含动态键的JSON响应中提取值
提取动态键对应的Token方法
核心思路是忽略动态键名,直接获取active对象下的所有值,再提取目标token。以下是主流编程语言的实现示例:
Python 实现
import json # 示例JSON字符串 json_content = '''{ "message": "Too many sessions, log out please, on one of your devices", "active": { "57": [ "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjY5ODAiLCJlbWFpbCI6IkBAc3ViamVjdCsxQG9zYXQuY29tK29zYXQiLCJmaXJzdE5hbWUiOiIxIiwiaXNzIjoibGVhcm5lciIsImlhdCI6MTcwMjAxOTcyNywiZXhwIjoxNzAyNjI0NTI3LCJwcm92aWRlciI6Ik9zYXQiLCJwaWQiOjV9.kXvAqJGqR9jjDTobzlwQ4k_sLl0aFWvEIeST93elODA", "Windows", "Chrome" ] }, "status": "TOO MANY SESSIONS" }''' # 解析JSON为字典 parsed_data = json.loads(json_content) # 获取active对象的第一个值数组,取第一个元素即为token token = next(iter(parsed_data['active'].values()))[0] print(token)
JavaScript 实现
// 示例JSON字符串 const jsonContent = `{ "message": "Too many sessions, log out please, on one of your devices", "active": { "57": [ "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjY5ODAiLCJlbWFpbCI6IkBAc3ViamVjdCsxQG9zYXQuY29tK29zYXQiLCJmaXJzdE5hbWUiOiIxIiwiaXNzIjoibGVhcm5lciIsImlhdCI6MTcwMjAxOTcyNywiZXhwIjoxNzAyNjI0NTI3LCJwcm92aWRlciI6Ik9zYXQiLCJwaWQiOjV9.kXvAqJGqR9jjDTobzlwQ4k_sLl0aFWvEIeST93elODA", "Windows", "Chrome" ] }, "status": "TOO MANY SESSIONS" }`; // 解析JSON为对象 const parsedData = JSON.parse(jsonContent); // 获取active对象的所有值数组,取第一个数组的第一个元素即为token const token = Object.values(parsedData.active)[0][0]; console.log(token);
通用逻辑说明
- 将JSON字符串解析为对应语言的可操作对象(字典/对象)
- 定位到
active字段对应的嵌套对象 - 提取该嵌套对象的所有值(无需关注动态键名)
- 取第一个值数组的第一个元素,就是目标Token
内容的提问来源于stack exchange,提问作者BhavinD.
相关产品推荐
相关产品推荐

