jsonnet - 如何正确格式化此 jsonnet 数组输出?
问题描述
我有以下 JSON,并且正在使用 -y 选项来生成 yaml 输出。
{
array: [
{item1: 1},
{item2: 2},
]
}
我想生产(需要)
{
"array":
- "item1": 1,
- "item2": 2
}
但我得到
{
"array": [
{
"item1": 1
},
{
"item2": 2
}
],
}
注意实际输出中的大括号。是否可以使用 jsonnet 生成所需的 yaml 输出?
解决方案
如果您想从此开始(有效的 JSON 和有效的 YAML):
{
"array": [
{
"item1": 1
},
{
"item2": 2
}
],
}
对此:
array:
- item1: 1
- item2: 2
您可以将结果通过管道传输yq
:
$ cat input.jsonnet
{
array: [
{item1: 1},
{item2: 2},
]
}
$ jsonnet input.jsonnet | yq -y
array:
- item1: 1
- item2: 2
如果您真的希望最终输出如下所示:
{
"array":
- item1: 1
- item2: 2
}
请注意,这既不是有效的 JSON 也不是有效的 YAML(例如,尝试将其粘贴到 YAML 验证器中)。您需要编写某种自定义输出格式来获得该输出(也许“自定义输出格式”部分中的文档在这方面会有所帮助,尽管我自己没有尝试过任何这些)。
推荐阅读
- php - 如何链接到页面的特定部分 HTML PHP
- c# - 当后端代码中的简单键值变量工作相同时,为什么要使用 redis 作为缓存层?
- google-apps-script - Google Slides Apps 脚本检索页面中的形状
- python-3.x - 在 KNeighborsClassifier 中使用自定义指标时,我不断收到“TypeError:只有整数标量数组可以转换为标量索引”
- java - JavaFX - 在使用选项卡时将 GUI 拆分为单独的类
- jquery - 通过函数调整电子窗口大小
- scheme - 匹配方案中的括号
- android - 当我使用 adb 显示 /sys/kernel/debug/tracing/available_filter_functions 时没有这样的设备
- python - 初始化以迭代抽象pyomo模型中的集合?
- angular-cli - 运行 ng serve -o 时出现错误