2

我一直在为这个问题绞尽脑汁,我试图用一些没有乐趣的递归函数来解决这个问题,所以我想问问是否有人有任何解决方案。

我有一个混合了 JSON 和数组的对象,简而言之,我需要去掉数组,但在最初找到数组的位置保留它们的值。

这是对象/数组的console.log:

对象{类型:数组[1],属性:对象}

  1. 属性:对象
    1. 关联媒体:数组[1]
      1. 0:对象
        1. 属性:对象
        1. 网址:数组[1]
          1. 0:“/programmes/p00t64wh.emp”
        2. 长度:1
        3. 原型:数组[0]
        4. 原型:对象
      2. 类型:数组[1]
        1. 0:“媒体对象”
        2. 长度:1
        3. 原型:数组[0]
      3. 原型:对象
      4. 长度:1
      5. 原型:数组[0]
    2. byArtist:数组[1]
      1. 0:对象
        1. 属性:对象
        1. 名称:数组[1]
          1. 0:“培养人民”
        2. 长度:1
        3. 原型:数组[0]
        4. 网址:数组[1]
          1. 0:“/音乐/艺术家/e0e1a584-dd0a-4bd1-88d1-c4c62895039d”
        5. 长度:1
        6. 原型:数组[0]
        7. 原型:对象
      2. 类型:数组[1]
        1. 0:“音乐组”
        2. 长度:1
        3. 原型:数组[0]
      3. 原型:对象
      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. 网址:数组[1]
            1. 0:“/程序/b00c000j”
            2. 长度:1
            3. 原型:数组[0]
          3. 原型:对象
          4. 类型:数组[1]
            1. 0:“系列”
          5. 长度:1
          6. 原型:数组[0]
          7. 原型:对象
        2. 长度:1
        3. 原型:数组[0]
        4. 发布日期:数组[1]
          1. 0:对象
          1. 属性:对象
            1. 名称:数组[1]
            1. 0:“来自 BBC Radio 6 音乐”
            2. 长度:1
            3. 原型:数组[0]
          2. 网址:数组[1]
            1. 0: "/6音乐/"
            2. 长度:1
            3. 原型:数组[0]
          3. 原型:对象
          4. 类型:数组[1]
            1. 0:“广播服务”
          5. 长度:1
          6. 原型:数组[0]
          7. 原型:对象
        5. 长度:1
        6. 原型:数组[0]
        7. 原型:对象
      2. 类型:数组[1]
        1. 0:“情节”
        2. 长度:1
        3. 原型:数组[0]
      3. 原型:对象
      4. 长度:1
      5. 原型:数组[0]
    6. 原型:对象
  2. 类型:数组[1]
    1. 0:“音乐录音”
    2. 长度:1
    3. 原型:数组[0]
  3. 原型:对象

所需的转换应该类似于下面的代码,但如果,例如,保留“属性”但所有数组都应该被剥离到一个对象中,这不是一个大问题。

{
    '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