2017-01-03 62 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}解决,在下一篇文章请求中 –