2017-01-03 31 views
1

無法解析包含「\」響應解析,無法性反應使用JSON路徑測試器的JMeter

{"Content":"[{\"SummaryID\":\"402014189352\",\"PeriodID\":\"3079\",\"PeriodName\":\"Q3 16\",\"SummaryData\":[{\"SummaryID\":\"402014189352\",\"Date\":\"11\/11\/2016\",\"RawMatrixData\":\"{\\\"LstEstimateInfo\\\":[{\\\"TemplateID\\\":402014189251,\\\"SummaryID\\\":402014189352,\\\"TemplateName\\\":\\\"Template_201611119\\\",\\\"TemplateDate\\\":\\\"11\/11\/2016 08:48:09\\\",\\\"SelfServe\\\":true}],\\\"LstPeriodList\\\":[{\\\"PeriodName\\\":\\\"Q1 
+0

你的json是不正確的,你是否得到這種類型的迴應? –

+0

請提供您想要解析的完整json響應。 –

+0

@PradeepDeshmukh是iam得到這種類型的響應,我想解析它的日期 –

回答

1

嘗試使用Regular Expression ExtractorBeanShell Post Processor

步驟如下:

添加以下的正則表達式中的Regular Expression Extractor(檢索日期值):

"Date\\":\\"(.*?)" 

添加BeanShell的代碼如下(以除去 「\」,在第一匹配) :

String str1=vars.get("date_1").toString(); 
log.info("Before " + str1); 
String temp = str1.replace("\\",""); 
log.info("After " + temp); 
vars.put("date_formatted", temp); 

圖片出處: 1.正則表達式提取 enter image description here 2. BeanShell的 enter image description here 3.查看結果樹 enter image description here

+0

日期對象有多個日期 –

+0

將'match號'值更改爲'-1'以捕獲所有值。稍後,您可以通過'$ {date_1}','$ {date_2}'等方式訪問它們,通過將'vars.get(「date」)'替換爲'vars.get(「date_1」)'來更新BeanShell代碼取得第一場比賽。 –

+0

爲什麼我得到這個異常「方法調用中的錯誤java.lang.string在類org.apache.log.logger上找不到」 –

0
String str1=vars.get("SummaryID").toString(); 
String str2=vars.get("TemplateID").toString(); 
log.info("Before " + str1); 
log.info("Before " + str2); 
java.lang.String temp = str1.replace("\\",""); 
java.lang.String temp1 = str2.replace("\\",""); 
log.info("After " + temp); 
log.info("After " + temp1); 
vars.put("date_format1", temp); 
vars.put("date_format2", temp1); 

上面的代碼試過,刪除 「\」 的時候,我想通過$ {} SummaryID_1然後POST請求犯規作品。

+0

通過添加$ {date_format1}和$ {date_format1}解決,在下一篇文章請求中 –