0

次の JSON 構造があります。

[{"Name":"Ab1","Price":"153"},{"Name":"Cd2","Price":"179"},...]

PriceElementのNameを取得する XPath コマンドを書きたいと思います。Ab1

私は次のことを試しました:"//Name[Ab1]/Price" しかし、これは私にとってはうまくいきません。

4

2 に答える 2

2

JSONPath 構文は、XPath とは大きく異なります。これは、XPath の概念に基づいているだけです。

これは、あなたのケースでは正しい JSONPath である必要があります。試してみてください:

$[?(@.Name == 'Ab1')].Price
于 2014-03-14T03:58:53.480 に答える
0

DefiantJS ( http://defianjs.com ) を使用すると、XPath 式を使用して JSON 構造を照会できます。DefiantJS はグローバル オブジェクト JSON をメソッド「search」で拡張し、一致を配列のようなオブジェクトとして返します。

以下にコード例を示します。

    var data = [
       {
          "Name": "Ab1",
          "Price": "153"
       },
       {
          "Name": "Cd2",
          "Price": "179"
       }
    ],
    found = JSON.search(data, "//*[./Name='Ab1']/Price");

document.getElementById('output').innerHTML = found[0];

このコードの動作を確認するには、このフィドルをチェックしてください。http://jsfiddle.net/hbi99/a9uZ3/

より便利な XPath 式については、こちらのような XPath エバリュエーターを参照してください。 http://defiantjs.com/#xpath_evaluator

于 2014-05-18T22:26:41.357 に答える