jq: отображение json объектов в другую схему формата - PullRequest
0 голосов
/ 25 марта 2020

Мне нужно преобразовать массив элементов такого типа:

[
  {
    "Field1": "value1",
    "Field2": "value2"
  },
  {
    "Field1": "value3",
    "Field2": "value4"
  },
  ...
]

To:

[
    "PutRequest": {
        "Item": {
            "Field1": {
                "S": "value1"
            },
            "Field2": {
                "S": "value2"
            }
        }
    },
    "PutRequest": {
        "Item": {
            "Field1": {
                "S": "value3"
            },
            "Field2": {
                "S": "value4"
            }
        }
    },
    ...
]

Я думал об использовании jq, но я не совсем выяснить, как его получить.

РЕДАКТИРОВАТЬ

До сих пор я был в состоянии получить это:

[.[] | {"Field1": {"S": .Field1}, "Field2": {"S": .Field2}}]

Есть ли любой, что сказать: для каждого поля добавьте как key: {"S": .value}?

РЕДАКТИРОВАТЬ 2 Используя подход map({PutRequest: {Item: map_values({S: .})}}), он генерирует меня:

 {
    "S": {
      "Field1": "value1",
      "Field2": "value2",
    }
}

Мне нужно :

"Item": {
    "Field1": {
        "S": "value3"
    },
    "Field2": {
        "S": "value4"
    }
}

Есть идеи?

1 Ответ

2 голосов
/ 25 марта 2020

Точно не соответствует ожидаемому результату, но вы, вероятно, ищете что-то вроде этого:

map({PutRequest: {Item: map_values({S: .})}})

Демо

...