У меня есть образец JSon данные, такие как:JQ массив новых полей
{
"phone_number": "780-414-2085",
"city": "Edmonton",
"updated": "2015-10-19T00:03:10",
"name": "Sir William Place ",
"url": "http://www.bwalk.com/en-CA/Rent/Details/Alberta/Edmonton/Sir-William-Place",
"last_visited": "2015-10-19T00:03:10",
"rooms": [{
"available": "Available",
"bathrooms": ["1"],
"suite_type": "1 Bedroom",
"square_feet": ["594", "649"],
"deposit": ["$499"],
"price_range": ["$1059", "$1209"]
}, {
"available": "Available",
"bathrooms": ["1"],
"suite_type": "1 Bedroom + Den",
"square_feet": ["771"],
"deposit": ["$499"],
"price_range": ["$1169", "$1249"]
}, {
"available": "Available",
"bathrooms": ["1", "2"],
"suite_type": "2 Bedroom",
"square_feet": ["894", "970"],
"deposit": ["$499"],
"price_range": ["$1344", "$1494"]
}, {
"available": "Available",
"bathrooms": ["2"],
"deal": ["October FREE and $299 Security Deposit on 12 month leases "],
"suite_type": "2 Bedroom Bi-level",
"square_feet": ["894"],
"deposit": ["$499"],
"price_range": ["$1344", "$1394"]
}, {
"available": "Waiting List",
"bathrooms": ["1"],
"suite_type": "Bachelor",
"square_feet": ["540"],
"deposit": ["$499"],
"price_range": ["$1004", "$1054"]
}],
"address": "8830-85 St., Edmonton, Alberta, T6C 3C3",
"zip_code": "T6C 3C3"
}
И я бегу выражение JQ как:
'{phone_number, city, updated, name, address, zip_code, url, last_visited} + (.rooms[] | {suite_type, price_range_start: .price_range[0], price_range_end: .price_range[1]} + {available, square_foot_start:.square_feet[0], square_foot_end:.square_feet[1], deposit:.deposit[0], bathrooms:.bathrooms[0]})'
Это дает мне ОК выход, но повторяет одни и те же имена потому что я просто перечисляю массив комнат. Я хочу иметь возможность устанавливать каждый элемент в массиве комнат, например, в комнату 1, комнату2, комнату3 и т. Д. Но также держать ее в одной записи, так, например, с образцом здесь она заканчивается 5 записями, потому что есть 5 комнат и имя, например, повторяется 5 раз, потому что теперь у меня он установлен. Я думаю, мне нужно сопоставить комнаты, но не знаю, как это сделать.
Может ли кто-нибудь посоветовать, как это сделать?
Я не уверен, насколько я понимаю, каков ожидаемый результат и как он отличается от того, который вы получаете. Можете ли вы предоставить образец того, что вы хотели бы получить? –
Хорошо, что я ищу, так как это будет выведено в csv, в конце концов, это взять массив комнат и сделать cols для каждого элемента массива, чтобы что-то вроде room0/available, room0/bathrroms, room0/suite_type, room0/square_feet , room0/deposit, room0/price_start, room0/price_end, room1/available, room1/bathroom etc и т. д. так, чтобы это были заголовки, а затем значение для каждого. Надеюсь, это имеет смысл. – Tom
Вы, вероятно, найдете [этот ответ] (http://stackoverflow.com/a/33290267/3899165) полезным. –