Я пытаюсь проанализировать вывод json из вызова API. Вывод имеет массив заказов, а каждый заказ имеет массив элементов. Я хочу проанализировать выходные данные так, чтобы у меня был отдельный выход CSV для каждого отдельного элемента с его идентификатором родительского заказа.
Так что, если один заказ содержит несколько элементов, мне нужно, чтобы orderID повторялся для каждого элемента в его заказе. ,Я прочитал документацию jq и десятки примеров, и несколько часов пробовал проб и ошибок. Я ОЧЕНЬ не понимаю, как это сделать.
Я очень сильно борюсь с синтаксисом синтаксического анализа jq. Ни один из примеров не помогает, и я просто растерялся. Вот основы:
curl -s https://api.site.com/orders?page=1&pageSize=10 | jq '.'
Образец JSON ниже.
{
"orders": [
{
"orderId": 217356098,
"items": [
{
"orderItemId": 327010821,
"lineItemKey": "1",
"sku": "AJC-C10S",
"name": "TestDescription",
"imageUrl": null,
"weight": null,
"quantity": 2,
"unitPrice": 106.85,
"taxAmount": null,
"shippingAmount": null,
"warehouseLocation": null,
"options": [],
"productId": null,
"fulfillmentSku": null,
"adjustment": false,
"upc": null,
"createDate": "2016-11-09T02:11:28.307",
"modifyDate": "2016-11-09T02:11:28.307"
},
{
"orderItemId": 327010822,
"lineItemKey": "1",
"sku": "AJC-C106",
"name": "AnotherTestDescription",
"imageUrl": null,
"weight": null,
"quantity": 2,
"unitPrice": 106.85,
"taxAmount": null,
"shippingAmount": null,
"warehouseLocation": null,
"options": [],
"productId": null,
"fulfillmentSku": null,
"adjustment": false,
"upc": null,
"createDate": "2016-11-09T02:11:28.307",
"modifyDate": "2016-11-09T02:11:28.307"
}
]
},
],
"total": 359934,
"page": 1,
"pages": 179968
}
Ожидаемый результат (конечно, без заголовков столбцов):
orderId,orderItemId,sku,name
217356098,327010821,"JC-C10S","TestDescription"
217356098,327010822,"JC-C106","AnotherTestDescription"
Как видите, у каждого элемента есть своя строка, но если они пришли из одного порядка,orderId должен повторяться в каждой строке.
Как я могу это сделать?