Мне нужно получить содержимое таблицы mysql, в которой есть несколько полей, в которых хранятся данные в виде массива JSON, и включить их в другую таблицу базы данных.Мне нужно использовать REST API для этого, и он возвращает записи в формате JSON.Из соображений производительности мне нужен этот вывод для возврата на вкладку.Поэтому я использую jq's @ tsv.
. Это прекрасно работает, пока не встретит поле, содержащее массив JSON внутри, jq потом жалуется, что «массив недопустим в строке csv».
Вот пример JSON
{
"records": [
{
"id": 1,
"metadata": {
"description": null,
"width": 0,
"height": 0,
"secondaryColor": "#fff",
"callToAction": [
{
"link": "/truc.html",
"value": "nice",
"colors": {
"primary": "transparent;",
"secondary": "transparent;"
}
}
]
},
"parent": null
}
]
}
Мне бы хотелось получить следующий результат
1 null 0 0 #fff [ { "link": "/truc.html", "value": "nice", "colors": { "primary": "transparent;", "secondary": "transparent;" } } ] null
, поэтому я хочу, чтобы массив был неповрежденным, а просто возвращался в одномстрока
Итак, я написал это
jq -c --raw-output '.records[]|[.id,.metadata.description,.metadata.width,.metadata.height,.metadata.secondaryColor,.metadata.callToAction,.parent]|@tsv
Но у меня есть ошибка "массив недопустим в строке CSV"
Возможно ли это?
Спасибо