Фильтрация json при помощи jq
Дано:
Файл json с какими-то данными. Например:Требуется:
Быстро выполнить какое-нибудь преобразование или фильтрацию. Например, вытащить наименования продуктов.
Файл json с какими-то данными. Например:
- [{
- "name": "Company 1",
- "products": [
- {"id": 123,
- "name": "Product 1"},
- {"id": 124,
- "name": "Product 2"}
- ]
- },{
- "name": "Company 2",
- "products": [
- {"id": 323,
- "name": "Product 11"},
- {"id": 324,
- "name": "Product 22"}
- ]
- }]
Быстро выполнить какое-нибудь преобразование или фильтрацию. Например, вытащить наименования продуктов.
Независимо от компании:
- [.[] | .products[].name | strings | select(length > 0)]
- ["Product 1",
- "Product 2",
- "Product 11",
- "Product 22"]
В зависимости от компании:
- [.[] | {company: .name, "product-names": [.products[].name]}]
- [{
- "company": "Company 1",
- "product-names": [
- "Product 1",
- "Product 2"
- ]
- }, {
- "company": "Company 2",
- "product-names": [
- "Product 11",
- "Product 22"
- ]
- }]