i have a JSON file
js.json
{
"id": "json",
"description": "test",
"packages": [
{
"Group": "group1",
"Name": "name1",
"Version": "1.0.0"
},
{
"Group": "group2",
"Name": "name2",
"Version": "1.0.0"
},
{
"Group": "group3",
"Name": "name3",
"Version": "1.0.0"
},
{
"Group": "group5",
"Name": "name5",
"Version": "1.0.0"
}
]
}
It has 4 elements in the .packages array. I want to add a fifth element "group4" to the array to get
{
"id": "json",
"description": "test",
"packages": [
{
"Group": "group1",
"Name": "name1",
"Version": "1.0.0"
},
{
"Group": "group2",
"Name": "name2",
"Version": "1.0.0"
},
{
"Group": "group3",
"Name": "name3",
"Version": "1.0.0"
},
{
"Group": "group4",
"Name": "name4",
"Version": "1.0.0"
},
{
"Group": "group5",
"Name": "name5",
"Version": "1.0.0"
}
]
}
if i'm use
jq '.packages[3] |= . + {"Group":"group4", "Name":"name4", "Version":"1.0.0"}' jq.json
{
"id": "json",
"description": "test",
"packages": [
{
"Group": "group1",
"Name": "name1",
"Version": "1.0.0"
},
{
"Group": "group2",
"Name": "name2",
"Version": "1.0.0"
},
{
"Group": "group3",
"Name": "name3",
"Version": "1.0.0"
},
{
"Group": "group4",
"Name": "name4",
"Version": "1.0.0"
}
]
}
And i'm lost group5 element. Is it possible to add an item without losing the previous one? I understand that I can save the output of lost indexes and insert them with the new index, but this seems wrong