2

次のようなjson文字列があります。

  "files": {
     "fileA.c": {
         "size": 100
     },
     "fileB.txt": {
         "size": 200
     }
  }

JsonPath を使用して、ファイル名 {"fileA.c"," fileB.txt "} を抽出したいと考えています。ファイルの数は不明であることに注意してください。

問題は、ファイル名がキーなのか値なのかがわからないことです。

  • それがキーの場合...確かにキーの名前はわかりません。それが抽出したい情報だからです。
  • それが値の場合、そのキーは何ですか?
  • JsonPath を使用してファイル名を抽出できますか? もしそうなら、どのように?
  • JsonPathがこれを行うことができない場合、これを達成できるJson用のJavaライブラリはありますか?
4

2 に答える 2

0

データ構造を次のように変更することをお勧めします。

var data = {
   "files": [
      {
         "name": "fileA.c",
         "size": 100
      },
      {
         "name": "fileB.txt",
         "size": 200
      },
      {
         "name": "fileC.txt",
         "size": 50
      }
   ]
};

このように構成されている場合、DefiantJS ( http://defiantjs.com ) を使用して、サイズが 100 を超えるファイルを照会できます...次のように:

JSON.search(data, '//*[size >= 100]/name')

DefiantJS はグローバル オブジェクト JSON をメソッド「search」で拡張します。このメソッドを使用すると、XPath 式で JSON 構造を照会できます。

データの実際の例を見るには、次のフィドルをチェックしてください: http://jsfiddle.net/jRN22/

于 2014-05-18T22:58:05.027 に答える