首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套数组的jsonnet语法是什么?

嵌套数组的jsonnet语法是什么?
EN

Stack Overflow用户
提问于 2022-09-19 10:36:37
回答 1查看 101关注 0票数 0

我找不到用jsonnet在数组中声明数组的方法。下面是我要呈现的语法:

代码语言:javascript
复制
git/push/myrules:
  rules:
      - changes:
        - package.json
        - yarn.lock

我确实成功地将changes设置为规则数组的第一个元素。

代码语言:javascript
复制
local git_push_instance() =
  {
    ['rules']: [
        'changes'
    ]
  };

{
  ['git/push/myrules']: git_push_instance()
}

下面是命令行jsonnet rules.jsonnet的输出

代码语言:javascript
复制
{
   "git/push/myrules": {
      "rules": [
         "changes"
      ]
   }
}

但是,如何将更改设置为包含两个条目的数组: package.json和yarn.lock?

我试了一下,但出了个错误:

代码语言:javascript
复制
local git_push_instance() =
  {
    ['rules']: [
        changes: ['package.json', 'yarn.lock']
    ]
  };

{
  ['git/push/myrules']: git_push_instance()
}

静态错误: rules.jsonnet:4:16:在下一个数组元素之前需要一个逗号.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-19 20:52:40

问题是,下面的构造有一个键(changes:),而据推测它是一个数组条目:

代码语言:javascript
复制
    ['rules']: [
        changes: ['package.json', 'yarn.lock'] // incorrect
    ]

您需要更改上面的内容,以发出一个(Mini)对象数组,而不是:

代码语言:javascript
复制
    ['rules']: [
        { changes: ['package.json', 'yarn.lock'] },
    ]

为了完整起见,粘贴在src及其输出下面:

rules.jsonnet

代码语言:javascript
复制
local git_push_instance() =
  {
    rules: [
      { changes: ['package.json', 'yarn.lock'] },
    ],
  };

{
  'git/push/myrules': git_push_instance(),
}

输出

注:通过yq -PI2管道获得更干净的YAML输出:

代码语言:javascript
复制
$ jsonnet rules.jsonnet | yq -PI2
git/push/myrules:
  rules:
    - changes:
        - package.json
        - yarn.lock
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73772079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档