ホームページ  >  に質問  >  本文

javascript - json 内の複数のキーと値のペア内の複数のネストされたキーの名前の取得について

リーリー

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

ringa_leeringa_lee2686日前835

全員に返信(6)返信します

  • 黄舟

    黄舟2017-06-12 09:24:48

    リーリー

    返事
    0
  • 漂亮男人

    漂亮男人2017-06-12 09:24:48

    リーリー

    これは処理が必要なデータです。主題の質問は、次の質問の適切なサブセットと見なされるべきです
    (問題は "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
  • 世界只因有你

    世界只因有你2017-06-12 09:24:48

    リーリー

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

    返事
    0
  • PHP中文网

    PHP中文网2017-06-12 09:24:48

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

    リーリー

    返事
    0
  • 世界只因有你

    世界只因有你2017-06-12 09:24:48

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

    リーリー

    返事
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-12 09:24:48

    リーリー

    返事
    0
  • キャンセル返事