首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON Extractor JSON

JSON Extractor JSON
EN

Stack Overflow用户
提问于 2014-05-29 09:01:24
回答 1查看 2.7K关注 0票数 1

我试图使用从以下JSON中提取参数roomNo:

代码语言:javascript
复制
*/
{   
"categoryCode": ["I4"],
"Response": {
    "class": "example",
    "availables": {
        "available": [
            {
                "Desc": " Middle",
                "roomNo": "5049"
            },
            {
                "Desc": " Middle",
                "roomNo": "5062"
            }
            ],
        "class": "test"
    },
    "advisoryInfo": null
},
"storeId": "10251"
}
*/

我使用以下表达式,但没有成功:

代码语言:javascript
复制
/Response/availables/available[0]/roomNo

这句话有错吗?

更新:

我尝试使用插件JSON路径EXTRATCTOR。我尝试了以下查询,但没有成功:

代码语言:javascript
复制
$...available[0]

$.Response.availables.available..roomNo[0]

$.Response.availables.available[0].roomNo

UPDATE1:

还有一个考虑:我收到的ajax响应从*/开始,这有可能给JSON提取器带来麻烦吗?我通过查看结果树看到响应

UPDATE2:我尝试了以下方法:

ajax请求后面跟着bash提取器,然后是json提取器,但它仍然不起作用。

在bash提取器中,我按照建议使用以下字符串:字符串temp =新字符串(prev.getResponseDataAsString());prev.setResponseData(temp.replaceAll(“*/”,“”).getBytes();

还有一些问题:

有可能看到巴什提取器的结果吗?我应该在json提取器之前声明它应该使用temp变量吗?多么?

EN

回答 1

Stack Overflow用户

发布于 2014-05-29 09:18:54

恐怕XPath Extractor不允许您解析JSON。

您将需要通过JSONPath萃取器提供JMeter插件 (您需要Extras和Libs )。

在您的示例中,相关的JSONPath查询如下所示:

代码语言:javascript
复制
$.Response.availables.available..roomNo[0]

查看XPath提取器在JMeter中的应用指南(向下滚动到解析JSON)以获得更多信息,并查看XPath到JSONPath映射表。

希望这能有所帮助。

UPD。您可以使用Beanshell Processor来摆脱*/位,在这种情况下,JSONPath应该可以正常工作。Beanshell PostProcessor代码:

代码语言:javascript
复制
String temp = new String(prev.getResponseDataAsString());
prev.setResponseData(temp.replaceAll("\\*/","").getBytes());

确保Beanshell后处理器在 JSONPath Extractor之前运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23929525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档