2

私はこれで頭を悩ませてきました.喜びのない多くの再帰関数でこれを解決しようとしました.

JSON と配列が混在するオブジェクトがあります。要するに、配列を削除する必要がありますが、配列が最初に見つかった場所の値を保持する必要があります。

オブジェクト/配列の console.log は次のとおりです。

オブジェクト {タイプ: 配列[1]、プロパティ: オブジェクト}

  1. プロパティ: オブジェクト
    1. 関連付けられたメディア: 配列 [1]
      1. 0: オブジェクト
        1. プロパティ: オブジェクト
        1. URL: 配列[1]
          1. 0: "/プログラム/p00t64w.​​emp"
        2. 長さ: 1
        3. プロト: 配列[0]
        4. proto : オブジェクト
      2. タイプ: 配列[1]
        1. 0: "メディアオブジェクト"
        2. 長さ: 1
        3. プロト: 配列[0]
      3. proto : オブジェクト
      4. 長さ: 1
      5. プロト: 配列[0]
    2. アーティスト: アレイ[1]
      1. 0: オブジェクト
        1. プロパティ: オブジェクト
        1. 名前: 配列[1]
          1. 0:「人を育てる」
        2. 長さ: 1
        3. プロト: 配列[0]
        4. URL: 配列[1]
          1. 0: "/音楽/アーティスト/e0e1a584-dd0a-4bd1-88d1-c4c62895039d"
        5. 長さ: 1
        6. プロト: 配列[0]
        7. proto : オブジェクト
      2. タイプ: 配列[1]
        1. 0: "音楽グループ"
        2. 長さ: 1
        3. プロト: 配列[0]
      3. proto : オブジェクト
      4. 長さ: 1
      5. プロト: 配列[0]
    3. 画像: 配列[1]
      1. 0: "/radio1/chart/artwork/ussm11002931.jpg"
      2. 長さ: 1
      3. プロト: 配列[0]
    4. 名前: 配列[1]
      1. 0:「パンプド・アップ・キック」
      2. 長さ: 1
      3. プロト: 配列[0]
    5. パブリケーション: 配列[1]
      1. 0: オブジェクト
        1. プロパティ: オブジェクト
        1. partOfSeries: 配列[1]
          1. 0: オブジェクト
          1. プロパティ: オブジェクト
            1. 名前: 配列[1]
            1. 0:「ローレン・ラバーン」
            2. 長さ: 1
            3. プロト: 配列[0]
          2. URL: 配列[1]
            1. 0: "/プログラム/b00c000j"
            2. 長さ: 1
            3. プロト: 配列[0]
          3. proto : オブジェクト
          4. タイプ: 配列[1]
            1. 0:「シリーズ」
          5. 長さ: 1
          6. プロト: 配列[0]
          7. proto : オブジェクト
        2. 長さ: 1
        3. プロト: 配列[0]
        4. publishedOn: 配列[1]
          1. 0: オブジェクト
          1. プロパティ: オブジェクト
            1. 名前: 配列[1]
            1. 0:「BBCラジオ6ミュージックより」
            2. 長さ: 1
            3. プロト: 配列[0]
          2. URL: 配列[1]
            1. 0: "/6music/"
            2. 長さ: 1
            3. プロト: 配列[0]
          3. proto : オブジェクト
          4. タイプ: 配列[1]
            1. 0: "ブロードキャストサービス"
          5. 長さ: 1
          6. プロト: 配列[0]
          7. proto : オブジェクト
        5. 長さ: 1
        6. プロト: 配列[0]
        7. proto : オブジェクト
      2. タイプ: 配列[1]
        1. 0:「エピソード」
        2. 長さ: 1
        3. プロト: 配列[0]
      3. proto : オブジェクト
      4. 長さ: 1
      5. プロト: 配列[0]
    6. proto : オブジェクト
  2. タイプ: 配列[1]
    1. 0:「音楽録音」
    2. 長さ: 1
    3. プロト: 配列[0]
  3. proto : オブジェクト

目的の変換は次のコードのようになりますが、たとえば、「プロパティ」が残っていて、すべての配列をオブジェクトに取り除く必要がある場合は、大きな問題にはなりません。

{
    'associatedMedia': {
        'url':'/programmes/p00t64wh.emp',
        'type':'MediaObject'
    },
    'byArtist': {
        'name':'Foster the People',
        'url':'/music/artists/e0e1a584-dd0a-4bd1-88d1-c4c62895039d',
        'type':'MusicGroup'
    },
    'publication': {
        'publishedOn':{
            'name':'From BBC Radio 6 Music',
            'url':'/6music/',
            'type':'BroadcastService'
        },
        'partOfSeries':{
            'name':'Lauren Laverne',
            'url':'programmes/b00c000j',
            'type':'Series'
        }
        'type':'http://schema.org/Episode'
    }
    'image':'/radio1/chart/artwork/ussm11002931.jpg',
    'name':'Pumped up Kicks',
    'type':'MusicRecording'
}

すべてのキーと値は動的に割り当てられますが、変換する必要があるオブジェクトは次のようになります: オブジェクト > キー/値 > 0 > プロパティ > キー/値

助けてくれてありがとう:)

4

0 に答える 0