javascript - json 内の複数のキーと値のペア内の複数のネストされたキーの名前の取得について
ringa_lee
ringa_lee 2017-06-12 09:22:48
0
6
898
リーリー

このような json ファイルがあります。次に、flask-webapp の文字列そのものであるキー flask-webapp の名前を抽出する必要があります。それ? Object.keys() を使用して、RuntimeSource、DeploymentId、Serial の 3 つのキーを取得します。
私の説明は少し複雑な気がしますが、問題を要約すると、この JSON ファイルの最初の Key-Value の Key-Value の次の層のキーを抽出する方法です (もっと複雑なようです。 .. 読んでいただければ幸いです) わかりました)
Python または JavaScript を使用して実装できます

ringa_lee
ringa_lee

ringa_lee

全員に返信(6)
黄舟

リーリー

いいねを押す +0
漂亮男人

リーリー

これは処理が必要なデータです。主題の質問は、次の質問の適切なサブセットと見なされるべきです
(問題は "flask-webapp" が得られる限りです)

オブジェクトからオブジェクトのすべてのキー名を抽出し、配列を形成します

このプロセスを一時的に 铺平 flat と呼びます。この解決策を得るために、ここでもこの関数を実装しました。

リーリー

Object.keysを使用して問題を解決してください

Object.keys 列挙可能な第 1 レベルのオブジェクト属性キー名を取得する機能

次のような機能を使用して再帰関数を作成します:

リーリー

スクリーンショット

リーリー


具体的には、flask-webappこのキー名が必要です:

リーリー

JSON.stringify を使用して問題を解決します

JSON.stringify 可以把对象转化成 JSON字符串

たとえば、JSON.stringify(o) で結果を取得できますJSON.stringify(o) 可以得到结果
"{"RuntimeSources":{"flask-webapp":{"eb-flask1.3":{"s3url":""}}},"DeploymentId":4,"Serial":4}"

観察を続けると、次のことがわかります:

JSON 中, :

の前はキー名です

冒号 JSON 要素を配列に構築し、

より前の要素を選択します。

ツール機能

リーリー flat

実装

リーリー

上記の意味:

{ } : ,最初のreduceは前後にスペースを追加します

対応コード

リーリー

結果は次のとおりです:

のオリジナルstr "{"RuntimeSources":{"flask-webapp":{"eb-flask1.3":{"s3url":""}}},"DeploymentId":4,"Serial":4}"

加工後は

になります " { "RuntimeSources" : { "flask-webapp" : { "eb-flask1.3" : { "s3url" : "" } } } , "DeploymentId" : 4 , "Serial" : 4 } "

A中間結果を取得する

次へ

Aこちらで対応させていただきます

対応コード:

リーリー A 转成中间数组 Bを中間配列に変換

: (文字列から配列に)

最後のreduceで結果が得られます

B観察

は結論につながる可能性があります

JSON 中, :

の前はキー名です

冒号それに応じて最終的なreduceを記述します:

の前に要素を収集し、結果を取得します

スクリーンショット

🎜
いいねを押す +0
世界只因有你

リーリー

実行の最後に「未定義または null をオブジェクトに変換できません」というエラーがスローされるはずですが、これは問題ありません

いいねを押す +0
Ty80

Pythonで実装したい場合、dictはハッシュテーブル構造であり、データが入力された後、特性に従ってハッシュされ、独自の順序を持​​っています
キーの名前を指定できれば。キーの名前を指定できない場合でも取得できます

リーリー
いいねを押す +0
世界只因有你

Python のデフォルトの辞書は順序付けされていませんが、OrderedDict 順序付き辞書を使用して実装できます。

リーリー
いいねを押す +0
曾经蜡笔没有小新

リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート