The Dictionary type is mapping unique IDs to string values. This way, your list will be updated when changes in your data source occur instead of just being added without update (like in List type). Thus, we recommend to use Dictionary over List whenever possible.

In the following, we will use a data source with this JSON result as example:

{
  "userlist": [
    {
      "id": 1,
      "name": "Mario Speedwagon",
      "username": "mario"
    },
    {
      "id": 2,
      "name": "Anna Sthesia",
      "username": "anna"
    }
  ]
}
CODE

Select List

Add the JsonPath referring to your data list. The result must always contain the complete data set that you want to sync, and not just a single value.

Example:

$.userlist[*]
CODE

Unique ID

ID stands for Identifier and must be a unique number or string that identifies an item within the data set. Define a path to the field that represents the unique Identifier in your selected list.

Example:

$.id
CODE

Label

Define the JSON path to the field in your selected list that you want to use as Label.

Example:

$.name
CODE

In case you want to build a more complex label you can combine multiple values, using curly brackets {}.

Example:

{$.name} - {$.username}
CODE

The result of this example setup would now be:

{
  "1": "Mario Speedwagon - mario",
  "2": "Anna Sthesia - anna",
}
CODE

Keep in mind that values must be unique. An custom field of type select doesn't allow duplicate values, even if you use different IDs.

Force Delete

By activating this checkbox, the app will force delete missing values instead of disabling values which are no longer present in the data source.

This will also delete former references to issues. Thus, a loss of historical data is possible. Only use this option if you are aware of the consequences. Usually it is sufficient to just disable a value.

Limitations

Dictionary Type currently has a limit of 5.000 key-value pairs. But keep in mind: At around 2.000 entries, the dropdown performance in the issue view starts to decrease drastically. It also depends on the machine you are testing it on, so make sure your userbase can use it properly.