Как использовать динамический ключ списка c в операторах Liquid - PullRequest
0 голосов
/ 12 марта 2020

У меня очень серьезная c проблема с жидкостью, и я не могу найти ответ, который соответствует мне.

Предположим, у меня есть два объекта:

data = {
   "key1": "somevalue",
   "key2": someothervalue"
}

и

mapping = {
   "mapping1": "key1"
}

Я хочу напечатать значение из данных, используя ключ сопоставления. Я попробовал:

{{data[mapping.mapping1]}}

, который я ожидал бы напечатать somevalue

Если бы я изменил mapping1 на key2, я бы ожидал, что мое заявление Liquid будет напечатано someothervalue

Где я иду не так?

1 Ответ

0 голосов
/ 18 марта 2020

Ваши объекты недействительны JSON, может быть, это ваша проблема? Если бы вы использовали действительный JSON индекс, доступ к которому был показан выше в квадратных скобках, он бы работал в Liquid.

Вот как будет выглядеть действительный объект JSON:

{
  "data": {
    "key1": "somevalue",
    "key2": "someothervalue"
  },
  "mapping": {
    "map1": "key2"
  }
}

In в каком случае {{data[mapping.map1]}} приведет к некоторому другому значению.

Вы можете проверить это в этой жидкой песочнице , просто добавив тег Liquid в поле шаблона, а JSON выше в Source JSON поле, а затем переключитесь обратно в поле шаблона, и вы увидите правильный вывод.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...