JQ: объединение различных объектов в новый массив - PullRequest
0 голосов
/ 03 апреля 2019

Я использую jq 1.5 в среде Windows для изменения файлов json. Привет, есть следующий файл JSON:

{"player_container":{"74016":["None","None","None","None","None","None","None","None"],"74002":["None","None","None","ta81a928e0624295b01499d7035d0308","tdd4e222600d42f9954b0be0448da0b1","None","None","None"],"74007":["None","None","None","None","None","None","None","None"],"74009":["None","None","None","None","None","None","kcb810a423dd4e179027f0feaae9ea60","None"],"74012":["x720ed571876471fab173ba05f71e4b3","None","None","None","None","None","None","None"],"74013":["None","None","None","None","None","None","None","None"],"74014":["vd86094b5a6e448f8c416d6fe75bec7c","None","None","h6ef696cf767464f9c367150fdb29fe4","None","g77b124cd46b41399c3db219ac0a76bd","None","None"],"74015":["None","None","None","None","None","None","None","None"]}}

В объекте player_container находятся разные объекты («имя» объекта и количество объектов время от времени различаются). Я на самом деле использую следующую команду jq, чтобы объединить их в новый массив:

.player_container | .[] | [{ user_id: .[]}]

Но он генерирует разные массивы json, а не один. Как мне нужно выглядит:

   [
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  }
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "ta81a928e0624295b01499d7035d0308"
  },
  {
    "user_id": "tdd4e222600d42f9954b0be0448da0b1"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  }
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  }
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "kcb810a423dd4e179027f0feaae9ea60"
  },
  {
    "user_id": "None"
  }
  {
    "user_id": "x720ed571876471fab173ba05f71e4b3"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  }
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  }
  {
    "user_id": "vd86094b5a6e448f8c416d6fe75bec7c"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "h6ef696cf767464f9c367150fdb29fe4"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "g77b124cd46b41399c3db219ac0a76bd"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  }
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  },
  {
    "user_id": "None"
  }
]

Какие-нибудь советы?

BR Timo

1 Ответ

0 голосов
/ 03 апреля 2019

Вам нужно переместить только одного персонажа:

[.player_container | .[] | { user_id: .[]}]

В то время как ваша версия создает отдельный массив для каждого вывода .player_container | .[], это соберет все в один массив.

...