Моя команда jq возвращает объекты в скобках, но без запятых.Но я хотел бы создать из него новую строку json.
Этот вызов находит все элементы arr
, в которых есть FooItem
, а затем возвращает texts
из вложенного массива по индексу 3
:
jq '.arr[] | select(index("FooItem")) | .[3].texts'
на этом json (оригинал содержит больше элементов):
{
"arr": [
[
"create",
"w199",
"FooItem",
{
"index": 0,
"texts": [
"aBarfoo",
"avalue"
]
}
],
[
"create",
"w200",
"NoItem",
{
"index": 1,
"val": 5,
"hearts": 5
}
],
[
"create",
"w200",
"FooItem",
{
"index": 1,
"texts": [
"mybarfoo",
"bValue"
]
}
]
]
}
возвращает этот вывод:
[
"aBarfoo",
"avalue"
]
[
"mybarfoo",
"bValue"
]
Но я бы хотелсоздайте новый json из этих объектов, который выглядит следующим образом:
{
"arr": [
[
"aBarfoo",
"avalue"
],
[
"mybarfoo",
"bValue"
]
]
}
Может ли jq сделать это?
EDIT
Еще одно дополнение: учитываячто в текстах также есть строки нулевой длины, как бы вы удалили эти строки или не получили их в результате?
"texts": ["",
"mybarfoo",
"bValue",
""
]