jsonnet условная генерация поля

Как я могу заставить что-то подобное работать в jsonnet?

{
    if 1 == 1 then
      store: true
}

Когда я запускаю его с помощью jsonnet, я получаю следующую ошибку:

STATIC ERROR: a.jsonnet:2:9-11: unexpected: if while parsing field definition

Я хотел бы создать такой json, просто в качестве примера, но при оценке некоторых условий:

{
  "store": true
}

person Arjun    schedule 20.10.2020    source источник
comment
Вы также хотите условно создать поле, а не только его значение? Если последнее сделает это что-то вроде { store: 1 == 1 } или { store: if 1 == 1 then "TRUE" else "FALSE" }. Если вам нужно, чтобы само поле присутствовало условно (как предполагает заголовок вопроса), оно становится немного сложнее.   -  person jjo    schedule 20.10.2020
comment
Спасибо за ответ. Мне нужно, чтобы само поле было условным.   -  person Arjun    schedule 20.10.2020


Ответы (1)


Нижеприведенный фрагмент реализует условные поля store_A и store_B, соответствующие значениям val_A и val_B, с использованием jsonnet [null] оцененного fieldname, чтобы удалить его из проявления

local exp_val = 1;
local val_A = 1;
local val_B = 0;

{
  [if val_A == exp_val then 'store_A' else null]: true,
  [if val_B == exp_val then 'store_B' else null]: true,
}
person jjo    schedule 20.10.2020