【问题标题】:Is there a way to get substring of a string value in JSONPath?有没有办法在 JSONPath 中获取字符串值的子字符串?
【发布时间】:2014-04-07 22:57:59
【问题描述】:

基本上,我需要使用 JSONPath 获取字符串值的一部分。我无法先使用 JSONPath 获取完整值,然后再使用另一种语言获取其中的一部分。

有没有办法在 JSONPath 中做到这一点?

【问题讨论】:

    标签: json jsonp 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”之后的任何内容。
    • 我猜您正在寻找一种不会导致最终解析的解决方案。如果您找到这样的解决方案,请在此处分享。
    猜你喜欢
    • 2020-04-17
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    • 1970-01-01
    相关资源
    最近更新 更多