問題タブ [jsonpath]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - JSONPath / QML - 文字列配列の要素を取得する
QML に JSONListModel を使用しているため、このJSON ファイルの解析に助けが必要です
これは、オンライン プレイヤーの名前を取得する Minecraft サーバー クエリです。ただし、各ノードを List デリゲートに追加するのに問題があります。
これは私のコードです:
ご覧のとおり、クエリがあります。これは、表示したい要素への JSONPath です。
私が取得したいのは、プレーヤーの名前です。ワイルドカードを使用してすべての名前を取得しましたが、テキストのテキストをモデル ("$['players'][0-x]") に設定すると、次のようになります。
次の行を指します。
JSONListModel.qml 内。
そうそう、私は私の道が間違っていると推測しています。リンク先のJSONファイルにあるような配列の扱い方がわかりません。
ファイルが次のようなものである場合:
私はちょうどすることができました
しかし、ノードに名前がないため、できません。それらは単なる値です。
誰かが私を助けることができますか?
java - JsonPath : 複数の値を抽出して関数を使用する方法。
XPath は、この式 "concat(name,type)" を解決します。JsonPathでもこれを行うことはできますか? -一度に複数の値を抽出し、それにいくつかの関数を使用します。
Google の JsonPath の Java 実装を使用しています。
ありがとう!
java - キーを知らなくても JsonPath を使用して値を抽出する
次のようなjson文字列があります。
JsonPath を使用して、ファイル名 {"fileA.c"," fileB.txt "} を抽出したいと考えています。ファイルの数は不明であることに注意してください。
問題は、ファイル名がキーなのか値なのかがわからないことです。
- それがキーの場合...確かにキーの名前はわかりません。それが抽出したい情報だからです。
- それが値の場合、そのキーは何ですか?
- JsonPath を使用してファイル名を抽出できますか? もしそうなら、どのように?
- JsonPathがこれを行うことができない場合、これを達成できるJson用のJavaライブラリはありますか?
json - JSON パス クエリの可能性
の可能性は何ですかJSONPath queries
。以下は、JSONPath - XPath for JSONから見つけたクエリです。
という点で有効なクエリも次のとおりです。JSONPath
オンライン エバリュエーターJSONPath Online Evaluatorでこれらのクエリを試してみると、これらは機能しません。
json - JSONPath で文字列値の部分文字列を取得する方法はありますか?
基本的に、JSONPath を使用して文字列値の一部を取得する必要があります。最初に JSONPath を使用して完全な値を取得してから、別の言語を使用してその一部を取得することはできません。
JSONPath でそれを行う方法はありますか?
java - JSONノードに特定の値が割り当てられた子ノードがあることをアサートする方法は?
次のような JSON 文字列があります。
同じステートメント/アサートで、 ID
ofThing
が123
ANDであるとname
断言できる方法はありますか?Yet Another Thing
現時点では、フィルターの使用に失敗しているようです:
次の例外が発生します。
java.lang.IllegalArgumentException: 無効なコンテナー オブジェクトです
[]
上記の JSON 文字列に配列表記がないためでしょうか。あるべきですか?
関連して、Hamcrest (JSON アサート付き) を使用するための適切な紹介はありますか? 公式のチュートリアルは知っていますが、いつも間違っているようです...
更新:これの合理的な理由は次のとおりです:いくつかのThing
要素が返された場合、どの順序が保証されていないか(したがって、それらすべてをループしない限り一致できませんThing[1]
)? 1 つの要素が正しい ID と正しい名前の両方を持っていることを確認するにはどうすればよいですか? 子供たちを別々にチェックすると、1 つThing
は正しい名前を持ち、もう 1 つは正しい ID を持っているが、両方を持っているリスクはありませんか? (それはその JSON 形式で可能でしょうか、それともとにかくその場合は配列にする必要があり"Thing": [ { ... }, { ... } ], ...
ますか?
PS: 上記の JsonPath を最終的に次のように使用しようとしました:assertEquals("Yet Another Thing", JsonPath.read(json, "$.Things.Thing[?(@.ID == '123')].name"));
そのため、例外が発生した可能性もあります。また、最初に JsonPath メーリング リストでこの質問をしましたが、これまでに返信がなかったので、ここでもっと早く助けが得られることを望んでいました... :)
json - 適切な JSONPath を取得するには?
次の JSON 構造があります。
Price
ElementのName
を取得する XPath コマンドを書きたいと思います。Ab1
私は次のことを試しました:"//Name[Ab1]/Price"
しかし、これは私にとってはうまくいきません。