繁体   English   中英

如何在 JMESPath 表达式中使用变量?

[英]How to use variable in JMESPath expression?

正则表达式完美如下:jmespath.search(currentStats, 'Items[?Name == Annie ]')

但是我想将过滤后的键作为变量。

我试过 var name = "Annie" jmespath.search(JSONdata, 'Items[?Name == %s ]' %name; )

哪个不起作用。 提前谢谢了。

jmespath 或搜索 function 中没有将模板值模板化到查询字符串中的内置方法,但是您可以安全地嵌入带有反引号的 JSON 文字,但是您的语言允许这样做。

var name = "Annie";
var result = jmespath.search(JSONdata, 'Items[?Name == `' + JSON.stringify(name).replace('`','\\`') + '`]');

我们需要将字符串转换为 JSON,转义该字符串中的任何反引号,然后将其用反引号包裹起来。 让我们将其包装成 function 以使其更易于阅读:

function jmespath_escape(item) {
    return '`' + JSON.stringify(item).replace('`','\\`') + '`';
}

var name = "Annie";
var result = jmespath.search(JSONdata, 'Items[?Name == ' + jmespath_escape(name) + ']');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM