我得到一个async encodeName(x) {
// no Promise constructor here!
const cipher = crypto.createCipher('aes192', this.PASSWORD);
let encrypted = cipher.update(x, 'utf8', 'hex');
encrypted += cipher.final('hex');
if (encrypted.length > 240) {
let x = await this.storeFileName(encrypted);
return `@Fn ${x}`);
}
return encrypted;
}
storeFileName(x) {
// no unnecessary async here
return new Promise((resolve, reject) => {
let doc = { encName: x };
filesDb = new db(`${this.mntpnt}/__CORE_rigel.pro/x100.db`);
filesDb.insert(doc, (err, newdoc) => {
err ? reject(err) : resolve(newdoc._id);
});
});
}
字符串,如下所示:
JSON
我想获取[{"id":123,"name":"XX","default":false,"type":"other"},{"id":789,"name":"ZZ","default":false,"type":"first"}]
,其中名称为id
,因此提取的值应为ZZ
。
我试过这个JSON表达式:
789
我也尝试使用正则表达式:
$.id[?(@.name=='ZZ')]
,
我的正则表达式解决方案不起作用,因为{"id":(.+?),"name":"ZZ","default":false
和name
有类似的ZZ
值。
答案 0 :(得分:1)
你很接近,使用JSON提取器你需要找到ZZ,然后获取对象返回的id,使用下面的表达式:
[?(@.name == 'ZZ')].id
答案 1 :(得分:0)
在jmeter 4.0版本中可以使用$ .. token_id,但是在jmeter 2.x版本中我们需要使用$ .token_id,即$之后应该只有一个点(。),我现在面对这个问题它的工作。