次の JSON 構造があります。
[{"Name":"Ab1","Price":"153"},{"Name":"Cd2","Price":"179"},...]
Price
ElementのName
を取得する XPath コマンドを書きたいと思います。Ab1
私は次のことを試しました:"//Name[Ab1]/Price"
しかし、これは私にとってはうまくいきません。
JSONPath 構文は、XPath とは大きく異なります。これは、XPath の概念に基づいているだけです。
これは、あなたのケースでは正しい JSONPath である必要があります。試してみてください:
$[?(@.Name == 'Ab1')].Price
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