有没有办法在 JSONPath 中获取字符串值的子字符串?
Posted
技术标签:
【中文标题】有没有办法在 JSONPath 中获取字符串值的子字符串?【英文标题】:Is there a way to get substring of a string value in JSONPath? 【发布时间】:2014-04-07 22:57:59 【问题描述】:基本上,我需要使用 JSONPath 获取字符串值的一部分。我无法先使用 JSONPath 获取完整值,然后再使用另一种语言获取其中的一部分。
有没有办法在 JSONPath 中做到这一点?
【问题讨论】:
【参考方案1】:如果您可以举例说明一些 JSON 数据,那就太好了。根据你写的,我怀疑你正在寻找这样的东西(这里是 JSFilddle:http://jsfiddle.net/hbi99/4WYkc/);
var data =
"store":
"book": [
"@price": 12.99,
"title": "Sword of Honour",
"category": "fiction",
"author": "Evelyn Waugh"
,
"@price": 22.99,
"title": "The Lord of the Rings",
"category": "fiction",
"author": "J. R. R. Tolkien",
"isbn": "0-395-19395-8"
],
"bicycle":
"@price": 19.95,
"brand": "Cannondale",
"color": "red"
,
found = JSON.search(data, '//*[contains(title, "Lord")]');
document.getElementById('output').innerhtml = found[0].title;
JSONPath 不是标准化的“查询语言”,但 XPath 是。 JS 库 DefiantJS 使用“search”方法扩展了全局对象 JSON,您可以使用该方法使用 XPath 表达式查询 JSON 结构。该方法将匹配项作为类似数组的对象返回。
要查看更多示例,请在此处查看实时 XPath Evaluator: http://defiantjs.com/#xpath_evaluator
【讨论】:
谢谢。但是,您的答案返回了我不想要的整个标题。我需要标题的一部分,例如标题中“of”之后的任何内容。 我猜您正在寻找一种不会导致最终解析的解决方案。如果您找到这样的解决方案,请在此处分享。以上是关于有没有办法在 JSONPath 中获取字符串值的子字符串?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法获取在 BERT 中生成某个令牌的子字符串的位置?