Merging collections of maps/slices

I am trying to create the following structure:

{
  "items: [
    {
      "var": "value",
      "var2": "value2"
    },
    {
      "var": "value",
      "var2": "value2"
    }
  ]
}

The layout to create this is the following:

{{- $items := slice 36 48 -}}
{{- $data := dict -}}
{{- range $items-}}
  {{- $item := dict -}}
  {{- $item = merge $item (dict "var" "value") -}}
  {{- $item = merge $item (dict "var2" "value2") -}}
  {{- $data = merge $data (dict "items" $item) -}}
{{- end -}}
{{- $data | jsonify -}}

The result is empty. I am pretty sure it’s in the slices and dicts. How do I merge this properly so that I have a dict with “items” and in it the dict created in reach range?

Ok, got it working :slight_smile:

{{- $items := slice 36 48 -}}
{{- $data := slice -}}
{{- range $items-}}
  {{- $item := dict -}}
  {{- $item = merge $item (dict "var" "value") -}}
  {{- $item = merge $item (dict "var2" "value2") -}}
  {{- $data = $data | append $item -}}
{{- end -}}
{{ $output := dict "items" $data }}
{{- $output | jsonify -}}

The “items” need to be added after the single items are sliced together. Then it works.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.