
[英]How can I filter javascript objects with an expression that has array in it with 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.