【问题标题】:String Interpolation in Keys in JsonnetJsonnet中键中的字符串插值
【发布时间】:2019-09-05 14:21:48
【问题描述】:

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

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

{
 std.format("Hello %03d", 12): "milk"
}

但结果是

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

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

{
    "milk": std.format("Hello %03d", 12),
    "Hello 12": "milk"
}

生成:

{
  "Hello 12": "milk",
  "milk": "Hello 012"
}

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

【问题讨论】:

    标签: json jsonnet


    【解决方案1】:

    对于计算字段名称,您需要用 [] 包装它们(请参阅 https://jsonnet.org/learning/tutorial.html#computed_field_names ),即以下方法可以正常工作:

    {
     [std.format("Hello %03d", 12)]: "milk"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-23
      • 2015-09-14
      • 2012-12-08
      相关资源
      最近更新 更多