AI智能
改变未来

jmeter中,beanshell获取json数组长度

接口返回的json格式如下:
现在想要获取chapterList数组长度

{:   \"desc\":null,:   \"success\":true,:   \"code\":\"success\",:   \"data\"::   {:   :   \"courseId\":1,:   :   \"chapterList\"::   :   [:   :   :   {:   :   :   :   \"chapterId\":0,:   :   :   :   \"chapterName\":\"章节1\",:   :   :   :   \"lessonList\"::   :   :   :   [:   :   :   :   :   {:   :   :   :   :   :   \"lessonId\":1,:   :   :   :   :   :   \"lessonName\":\"课时1\",:   :   :   :   :   }:   :   :   :   ]:   :   :   },:   :   :   {:   :   :   :   \"chapterId\":1,:   :   :   :   \"chapterName\":\"章节2\",:   :   :   :   \"lessonList\"::   :   :   :   [:   :   :   :   :   {:   :   :   :   :   :   \"lessonId\":2,:   :   :   :   :   :   \"lessonName\":\"课时2\",:   :   :   :   :   }:   :   :   :   ]:   :   :   }:   :   ],:   }}

新增一个beanshell sampler,添加如下代码:

import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;String jsonContent = prev.getResponseDataAsString();JSONObject response = JSON.parseObject(jsonContent);JSONArray dataList = response.getJSONObject(\"data\").getJSONArray(\"chapterList\");int length = dataList.size();vars.put(\"m_length\",length.toString());log.info(\"m_length=${m_length}\");

运行结果:
m_length=2

遗留问题:
如果想要知道chapterList下面的lessonList数组长度,该如何写呢?

解答:

for(int i=0;i<m_length;i++){JSONObject chapter = (JSONObject)dataList.getJSONObject(i);log.info(\"chapter---->\"+chapter.toString());JSONArray lessonList = chapter.getJSONArray(\"lessonList\");int llength = lessonList.size();//课时数log.info(\"llength==>\"+llength.toString());}
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » jmeter中,beanshell获取json数组长度