我有一个字符串列表,我需要将其转换为地图,这样当我jsonencode稍后对其进行转换时,它就不会创建数组。这是因为在 json-schema 中,它properties: { ... }不是属性列表,而是实际上的映射。
因此,我列表中的每个属性都应该作为键值映射出现。其中键是属性名称,值是另一个映射或对象 { "type" = "string" }。
additional-properties = [
for prop in local.prop-list:
{ prop = { "type" = "string" }}
]
Run Code Online (Sandbox Code Playgroud)
我的第一次尝试最终得到了地图对象列表,而不是属性地图。
有更好的方法来实现这一点吗?
我的最终目标是能够在 API 网关模型的 json 模式中使用 jsonencode -
"properties": {
"prop1": {
"type": "string"
},
"prop2": {
"type": "string"
}
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*ard 12
当您将分配指定为additional-properties:
[
for prop in local.prop-list:
{ prop = { "type" = "string" }}
]
Run Code Online (Sandbox Code Playgroud)
我们可以删除 lambda 和变量来查看构造函数的结果类型将是:
[{{}}]
Run Code Online (Sandbox Code Playgroud)
这是列表中的嵌套映射。
由于您想要一个具有{ prop { type = string } }结构的嵌套 Map,因此我们需要相应地指定构造函数:
additional-properties = { # outside map with "prop" key and map value
for prop in local.prop-list:
prop => { "type" = "string" } # nested map with "type" key and "string" value
}
Run Code Online (Sandbox Code Playgroud)
另请注意正确的 lambda 迭代器映射键值对赋值语法从=到的更改。=>
| 归档时间: |
|
| 查看次数: |
23157 次 |
| 最近记录: |