Jsonnet 键中的字符串插值
String Interpolation in Keys in Jsonnet
我想知道在使用 jsonnet 时是否可以在键中进行字符串插值?
例如,我想做这样的事情:
{
std.format("Hello %03d", 12): "milk"
}
但结果是
STATIC ERROR: arith.jsonnet:2:5: expected token OPERATOR but got "."
我知道 'key' 本身是有效的,因为如果我不使用插值它就可以正常工作,即
{
"milk": std.format("Hello %03d", 12),
"Hello 12": "milk"
}
生成:
{
"Hello 12": "milk",
"milk": "Hello 012"
}
看起来我也不能在键中使用变量,因为它们只是作为字符串(而不是变量的值)解析 - 任何建议都将不胜感激。
对于计算字段名称,您需要用 []
将它们包装起来(参见 https://jsonnet.org/learning/tutorial.html#computed_field_names ),即下面的方法将起作用:
{
[std.format("Hello %03d", 12)]: "milk"
}
我想知道在使用 jsonnet 时是否可以在键中进行字符串插值?
例如,我想做这样的事情:
{
std.format("Hello %03d", 12): "milk"
}
但结果是
STATIC ERROR: arith.jsonnet:2:5: expected token OPERATOR but got "."
我知道 'key' 本身是有效的,因为如果我不使用插值它就可以正常工作,即
{
"milk": std.format("Hello %03d", 12),
"Hello 12": "milk"
}
生成:
{
"Hello 12": "milk",
"milk": "Hello 012"
}
看起来我也不能在键中使用变量,因为它们只是作为字符串(而不是变量的值)解析 - 任何建议都将不胜感激。
对于计算字段名称,您需要用 []
将它们包装起来(参见 https://jsonnet.org/learning/tutorial.html#computed_field_names ),即下面的方法将起作用:
{
[std.format("Hello %03d", 12)]: "milk"
}