10

基本的に、JSONPath を使用して文字列値の一部を取得する必要があります。最初に JSONPath を使用して完全な値を取得してから、別の言語を使用してその一部を取得することはできません。

JSONPath でそれを行う方法はありますか?

4

1 に答える 1

0

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 は、グローバル オブジェクト JSON をメソッド「search」で拡張します。このメソッドを使用すると、XPath 式で JSON 構造をクエリできます。このメソッドは、一致を配列のようなオブジェクトとして返します。

他の例を見るには、ライブの XPath エバリュエーター ( http://defiantjs.com/#xpath_evaluator ) をチェックしてください。

于 2014-05-18T22:35:27.853 に答える