2016-08-03 5 views
0

json構造の未知のフィールドについては、以下のように説明します。私はその構造のゲートウェイを扱いたいと思っていますが、私はこれらのフィールドを持っているところでsemt.gatewaysに達しましたが、今はAAAとBBBBにアクセスしたいのですが、それらの値(AAAまたはBBBB)はゲートウェイの状態したがって、CCCCまたはDDDDの2つの新しいゲートウェイになる可能性もあります。json構造の未知のフィールドに対処するには?

これらのフィールドに対処する方法はありますか?事前に

おかげで、

{ 
    "router": { 
     "broadcast": { 
      "count": 7, 
      "rate_1": 0.010835197454271446, 
      "rate_15": 0.02788453406371163, 
      "rate_5": 0.005430725620930126 
     }, 
     "send": { 
      "count": 3, 
      "rate_1": 0.0016871408896396796, 
      "rate_15": 0.06962527561018554, 
      "rate_5": 0.010521501218758188 
     }, 
     "send_recipients": { 
      "avg": 1, 
      "max": 1, 
      "min": 1, 
      "p_25": 1, 
      "p_50": 1, 
      "p_75": 1 
     }, 
     "stat": { 
      "in": { 
       "count": 145, 
       "rate_1": 0.06743374503314854, 
       "rate_15": 0.058519644434074265, 
       "rate_5": 0.06641436790472173 
      } 
     }, 
     "uplink": { 
      "in": { 
       "count": 10, 
       "rate_1": 0.012522320815414685, 
       "rate_15": 0.02981672465254896, 
       "rate_5": 0.008197385273343911 
      }, 
      "negative_broker_response": { 
       "count": 6, 
       "rate_1": 0.010835197452761661, 
       "rate_15": 0.027646729205473473, 
       "rate_5": 0.005398046392581974 
      }, 
      "out": { 
       "count": 3, 
       "rate_1": 0.0016871408896396796, 
       "rate_15": 0.06962527561018554, 
       "rate_5": 0.010521501218758188 
      } 
     }, 
     "waiting_for_send": { 
      "count": 0 
     } 
    }, 
    "semt": { 
     "gateways": { 
      "AAA": { 
       "last_pull_data": { 
        "date": "2016-08-03T12:06:21Z" 
       }, 
       "last_push_data": { 
        "date": "2016-08-03T12:06:18Z" 
       }, 
       "pull_data": { 
        "count": 295, 
        "rate_1": 0.1041642570745486, 
        "rate_15": 0.09416326315994832, 
        "rate_5": 0.10078387259336224 
       }, 
       "push_data": { 
        "count": 102, 
        "rate_1": 0.05147652686982562, 
        "rate_15": 0.03543975773566928, 
        "rate_5": 0.03974814271702003 
       } 
      }, 
      "BBBB": { 
       "last_pull_data": { 
        "date": "2016-08-03T12:06:22Z" 
       }, 
       "last_push_data": { 
        "date": "2016-08-03T12:06:25Z" 
       }, 
       "pull_data": { 
        "count": 145, 
        "rate_1": 0.10405362006983286, 
        "rate_15": 0.11860991513624394, 
        "rate_5": 0.10040848429373028 
       }, 
       "push_data": { 
        "count": 53, 
        "rate_1": 0.028479538986283692, 
        "rate_15": 0.06878462929928854, 
        "rate_5": 0.03614229891544378 
       } 
      } 
     }, 
     "pull_data": { 
      "count": 440, 
      "rate_1": 0.208217877139802, 
      "rate_15": 0.17371766572905512, 
      "rate_5": 0.19970304027290767 
     }, 
     "push_data": { 
      "count": 155, 
      "rate_1": 0.07995606584855905, 
      "rate_15": 0.06384508343602703, 
      "rate_5": 0.07424449222265977 
     } 
    } 
} 
+0

可能性のある重複した[JavaScriptを取得するには、キーリストオブジェクト](http://stackoverflow.com/questions/3068534/getting-javascript-object-key-list) – str

答えて

0

あなただけconsole.log(Object.keys(obj.semt.gateways))をしないのはなぜ。あなたが何か他のものを必要としたら私に知らせてください。

https://jsfiddle.net/yk48b9xr/

+0

おかげで、私は唯一の対処したいと思いますAAAかBBBのファイルではなく、その名前はコンテンツではないと言います – ndarkness

+0

Object.keys(obj.semt.gateways).filter(key => {return key == 'AAA'またはkey == 'BBB'}はどうですか? (es6構文)。私は一般的に彼の答えに同意します。これはあなたのために動作しない場合、私はrewordingとあなたが正確に意味するもののいくつかの例を与えることを検討するだろう。 –

+0

私はポストを編集しました、つまり、AAA、BBBがゲートウェイ上で拒否するかもしれないという意味ですが、CCCCのように新しいものがポップアップする可能性があるので、CCCCまたはそのGWを事前に知らなくても – ndarkness

関連する問題