2

私はJavaでJSONスタイルのクエリエンジンを作成していますが、DOMパスでJSONドキュメントをクエリする機能の恩恵を受けます(Javascriptで実行できるように)。GSONとJacksonをチェックしましたが、どちらもこれをサポートしていないようです。

誰かが私自身を転がすのではなく、代替案や他の提案を知っていますか?

例えば

//Example JSON document
String json = "{ somewhere : {deep : { inside : 123 } }, anarray : [{val=1}] }";
JsonElement root = JsonParser.parse(json);

//What I'd like:
JsonElement node = root.getByDOM("somewhere.deep");  // {inside : 123}
JsonElement node2 = root.getByDOM("somewhere.deep.inside");  // 123
JsonElement node3 = root.getByDOM("anarray[0].val");  // 1
//etc
4

2 に答える 2

0

Jackson は間違いなくこれをサポートしています (「Jackson in 5 minutes」を参照してください。「Tree モード」を探してください)。たとえば、次のようになります。

JsonNode root = mapper.readTree(jsonSource);

GSONにも似たようなものがあると思いました。

しかし、何をするにしても、JSON を XML に変換してから XML ツールを使用しようとしないでください。これは、単に遅いだけでなく、多くの問題を引き起こす一般的な方法です。これは、JSON と XML のデータ モデルが根本的に互換性がないためです。

于 2012-12-10T19:55:25.780 に答える
0

json-path を廃止 - 提案してくれた brian に感謝します。

于 2012-12-11T05:55:26.800 に答える