Свести вложенный JSON с помощью jq - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь сгладить некоторые вложенные JSON с помощью jq.Моей первой попыткой было зацикливание JSON в bash с base64 согласно этой статье .Оказалось, что он работает очень медленно, поэтому я пытаюсь найти альтернативу просто с помощью jq.

У меня есть такой JSON, как этот:

[
  {
    "id":117739,
    "officers": "[{\"name\":\"Alice\"},{\"name\":\"Bob\"}]"
  },
  {
    "id":117740,
    "officers":"[{\"name\":\"Charlie\"}]"
  }
]

Поле officers содержитСтрока, которая тоже JSON.Я хотел бы уменьшить это до:

[
  { "id":117739, "name":"Alice" },
  { "id":117739, "name":"Bob" },
  { "id":117740, "name":"Charlie" }
]

1 Ответ

0 голосов
/ 02 октября 2018

Что ж, данные, которые вы пытаетесь сгладить, сами по себе являются JSON, поэтому вам нужно проанализировать их, используя fromjson.После анализа вы можете создать новые объекты.

map({id} + (.officers | fromjson[]))
...