有没有办法在 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 中生成某个令牌的子字符串的位置?

“String”类型不是“FontStyle”类型的子类型

如何在 Python 中获取字符串的子字符串?

如何在mongodb中使用jsonpath?

Notion API:有没有办法获取“人员”属性中提到的用户的子页面数量?

有没有办法构造一个函数来获取多个上层代理中存在的子代理的主坐标?