The Dictionary type is mapping unique IDs to string values. This allows for changing field options that are changed in the data source later on. You should always try to use Dictionary over List where possible.

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

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

Select List

First select the result list with JsonPath without extracting the values. It is important to understand that the result must contain the complete data set that you want to sync.

$.userlist[*]
CODE

Unique ID

ID stands for Identifier and must be a unique number or string that identifies an item in the data set.

Relative to the selected list define a path to the field that represents the unique Identifier.

$.id
CODE

Label

Relative to the selected list define a path to the value representing the label.

$.name
CODE

In case you want to build a more complex label you can combine multiple values with this syntax:

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

The result of this setup now is:

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

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

Force Delete

Activate this checkbox to force deletion instead of disabling options that are no longer present in the data source.

This will also delete old references to issues. Thus, a loss of historical data is possible. Only use this option I you are aware of the consequences. Normally it is sufficient to disable an option.

Limitations

The Dictionary Type has currently a limit of 5.000 key-value pairs, but keep in mind, that 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.