我知道如何在 JavaScript 中使用 JSONPath来过滤值:
var o = {
current_user_url: "https://api.github.com/user",
other_user_url: "https://api.github.com/user",
otherstuff: "stuff"
};
jsonPath(o, "$.[?(/https.*/.test(@))]") //returns ["https://api.github.com/user"]
但是如何过滤键?我希望返回键以 . 结尾的所有值*_url
。以下内容不起作用,因为@
显然只包含 JSON 对象的值。
jsonPath(o, "$.[?(/.*_url/.test(@))]")
如果 JSONPath 或 JSONQuery 无法实现,是否还有其他易于使用和设置的库?我希望用户输入查询表达式,这就是为什么我更喜欢使用查询语言而不是仅仅评估纯 JavaScript(比如这些家伙)。