[{"value_1":"Dragon fly"},{"value_1":"Agapostemon angelicus"},{"value_1":"Albuna oberthuri"},{"value_1":"Callohesma flavopicta"}]
Это данные JSON, которые мне нужно использовать для импорта радиостанций в веб-формы drupal 8. Я использую hook_webform_options_WEBFORM_OPTIONS_ID_alter() https://www.drupal.org/docs/8/modules/webform/webform-cookbook/how-to-use-options-from-an-external-webservice
Я не могу использовать value_1 в качестве ключа в радио, потому что он не уникален, поэтому мне нужно как-то скопировать значение в ключ и получить одинаковые данные с обеих сторон, тоже выглядит так.
[{"Стрекоза":"Стрекоза"},{"Agapostemon angelicus":"Agapostemon angelicus"},{"Albuna oberthuri":"Albuna oberthuri"},{"Callohesma flavopicta":"Callohesma flavopicta"}]
есть много списков и много данных, но та же проблема.
Это код из модуля, который я сделал, следуя инструкциям:
* Реализует hook_webform_options_WEBFORM_OPTIONS_ID_alter().
*/
функция my_module_webform_options_external_countries_alter (массив и $ параметры, массив и $ элемент) {
// Загружаем кешированные опции.
если ($cache = \Drupal::cache()->get('external_countries')) {
$options = $кэш->данные;
возвращаться;
}
// Получить данные в виде ассоциативного массива из внешнего веб-сервиса.
$external_countries_url = 'https://gist.githubusercontent.com/mshafrir/2646763/raw/8b0dbb93521f5d6889502305335104218454c2bf/states_hash.json';
$options = json_decode(file_get_contents($external_countries_url), TRUE);
// Кэшировать параметры, чтобы нам не приходилось делать постоянные запросы
// во внешний веб-сервис.
\Drupal::cache()->set('external_countries', $options);
}