I am using jsonnet to read in a value which consists of an array. I want to modify the first element in that array to add a value. The data structure looks like this:
{
"my_value": [
{
"env": "something"
},
{
"var": "bar"
}
]
}
I want to add a value to my_value[0]
. How can I reference that in jsonnet?
A possible approach using https://jsonnet.org/ref/stdlib.html#mapWithIndex as per below:
$ cat foo.jsonnet
local my_array = [
{
env: "something",
},
{
var: "bar",
},
];
local add_by_idx(idx) = (
if idx == 0 then { extra: "stuff" } else {}
);
std.mapWithIndex(function(i, v) v + add_by_idx(i), my_array)
$ jsonnet foo.jsonnet
[
{
"env": "something",
"extra": "stuff"
},
{
"var": "bar"
}
]