Jsonnet 键中的字符串插值

cdm*_*cdm 2 json jsonnet

我想知道在使用 jsonnet 时是否可以在键中插入字符串?

例如,我想做这样的事情:

{
 std.format("Hello %03d", 12): "milk"
}
Run Code Online (Sandbox Code Playgroud)

但它导致

STATIC ERROR: arith.jsonnet:2:5: expected token OPERATOR but got "."

我知道“密钥”本身是有效的,因为如果我不使用插值,它就可以正常工作,即

{
    "milk": std.format("Hello %03d", 12),
    "Hello 12": "milk"
}
Run Code Online (Sandbox Code Playgroud)

产生:

{
  "Hello 12": "milk",
  "milk": "Hello 012"
}
Run Code Online (Sandbox Code Playgroud)

看起来我也不能在键中使用变量,因为它们被解析为一个字符串(而不是变量的值) - 任何建议将不胜感激。

jjo*_*jjo 5

对于计算字段名称,您需要将它们包装起来[](请参阅https://jsonnet.org/learning/tutorial.html#computed_field_names),即下面将起作用:

{
 [std.format("Hello %03d", 12)]: "milk"
}
Run Code Online (Sandbox Code Playgroud)