假设我有这个JSON响应:
[
{
"id": "15",
"userId": "1",
"new": "true",
"date": "08/12/2013",
"text": "…"
},
{
"id": "16",
"userId": "1",
"new": "false",
"date": "08/12/2013",
"text": "…"
}
]
每个对象的 id 的常规expresión提取器将具有以下配置:
Reference name: object
Regular Expression: "id":"(.+?)"
Template: $1$
Match No: -1
Default value: null
我需要从每个对象中提取 id 和 new ,以便在ForEach控制器中一起使用它们。我需要一些关于这种情况的正则表达式的帮助。
Reference name: object
Regular Expression: ¿? "id":"(.+?)" ¿? "new":"(.+?)" ¿?
Template: $1$$2$
Match No: -1
Default value: null
另外,如何引用对象变量的每个特定部分? $ {object_1} 和 $ {object_2} ?
编辑:抱歉,我忘了提及我特别使用Jmeter。
答案 0 :(得分:2)
您可以设置:
然后使用ForEach控制器或者如果您只需要一些值,那么您将拥有:
ID_1 = 15
ID_2 = 16 ... new_1 =真
new_2 =假 ...
索引是相关的。
否则你可以看一下:
答案 1 :(得分:0)
这是JSON。那么,为什么不把它解析为JSON呢 这种方式很简单。我使用了 org.json Java解析器。
String jsonData = "[\r\n" +
" {\r\n" +
" \"id\": \"15\",\r\n" +
" \"userId\": \"1\",\r\n" +
" \"new\": \"true\",\r\n" +
" \"date\": \"08/12/2013\",\r\n" +
" \"text\": \"…\"\r\n" +
" },\r\n" +
" {\r\n" +
" \"id\": \"16\",\r\n" +
" \"userId\": \"1\",\r\n" +
" \"new\": \"false\",\r\n" +
" \"date\": \"08/12/2013\",\r\n" +
" \"text\": \"…\"\r\n" +
" }\r\n" +
" ]";
JSONArray jsonRoot = new JSONArray(jsonData);
for (int i = 0; i < jsonRoot.length(); i++) {
JSONObject jsonObj = jsonRoot.getJSONObject(i);
System.out.println("Object_" + (i+1) + " = id: " + jsonObj.getString("id") +
", new: " + jsonObj.getString("new"));
输出:
Object_1 = id: 15, new: true
Object_2 = id: 16, new: false
答案 2 :(得分:0)