在 Jsonnet 中解压嵌套对象以扁平化结构

问题描述 投票:0回答:1

我有以下 Jsonnet 结构

{
  _config: {
    v: 3,
  },
  
  obj: {
    [std.char(97 + x)]: x
    for x in std.range(0, $._config.v - 1)
  }
}

产生以下 json

{
  "_config": {
    "v": 3
  },
  "obj": {
    "a": 0,
    "b": 1,
    "c": 2
  }
}

但我想打开包装

obj
所以最终的物体看起来像这样

{
  "_config": {
    "v": 3
  },
  "a": 0,
  "b": 1,
  "c": 2
}

这可以吗?

jsonnet
1个回答
0
投票

我还没有想出在 Jsonnet 中“解压”(我知道这个词来自 Python,不确定是否有更通用的版本)对象的方法。

有点难看,但这会产生你想要的输出,而不需要任何重复:

local base = {
    _config: {
        v: 3
    }
};
base + {
    [std.char(97 + x)]: x
    for x in std.range(0, base._config.v - 1)
}
© www.soinside.com 2019 - 2024. All rights reserved.