Home  »  Learning guides  »  Dynamic tags  »  Map

Map

Use the Map tag to create a map, also called an associative array.

A map is made of key-value pairs, where the key is used as an index for the value.

Give it a unique name with the name attribute.

<Map name=numbers>
  <Key one>One</Key>
  <Key two>Two</Key>
</Map>

The Key tag defines each key by name, and contains the value. There are two ways to pass a value to the Key tag:

  • by inner content <Key name>...</Key> 
  • by attribute <Key name value="..." />

They work the same, except the former method may be better for strings that contain HTML.

The above example in JavaScript notation looks like:

{
  one: 'One',
  two: 'Two'
}

Dynamic key

The Key tag accepts the key name given as its first attribute, or using the name attribute. The latter can be useful for passing a dynamically generated name.

<Key name="{Get variable}">

List inside map

Use the List tag to set a list to a given key.

<Map name=numbers>
  <List one>
    <Item>1.1</Item>
    <Item>1.2</Item>
  </List>
  <List two>
    <Item>2.1</Item>
    <Item>2.2</Item>
  </List>
</Map>

The above example in JavaScript notation looks like:

{
  one: [
    '1.1',
    '1.2'
  ],
  two: [
    '2.1',
    '2.2'
  ]
}

Map from JSON

Set the json attribute to create a map from JSON string.

<Map name=numbers json>
{
  one: 'One',
  two: 'Two'
}
</Map>

It accepts Human JSON syntax, which supports comments, single quotes, and unquoted keys.

Map loop

Use the Loop tag and the map attribute to get multiple values from a map.

The Field tag gets each value by key.

<Loop map=numbers>
  <Field one />
  <Field two />
</Loop>

Map field

Use the Field tag and the map attribute to get a single value by key.

<Field two map=numbers />

Get map

Use the Get tag and the map attribute to get the whole map.

<Get map=numbers />

This outputs a JSON encoded string.