Ansible: 在json文件中删除空格

4

我在ansible变量中加载了一个json文件内容。

Json内容(以及从中得到的文件)有不必要的文件空格和空行。我想通过删除所有这些不必要的东西来压缩json文件。

是否可以像这样做 {{ myjson_content| to_json_minify }} ?

也许这可以通过正则表达式完成?

1个回答

5
你可以使用 separators 选项从 json 中读取并转换回 json。
{{ my_json_content | from_json | to_json(separators=(',',':')) }}

注意:这个功能没有官方文档,但是如果你查看源代码,你会发现该过滤器接受任意关键字参数,后者稍后将传递给python的json.dumps函数。因此,你可以基本上传递to_jsonjson.dumps接受的任何参数。

playbook.yml

---
- hosts: localhost
  vars:
      my_json_content:
        '
          { "a" :   0,

          "b":   1,

            "c":    2}

        '
  tasks:
    - debug:
        msg: "json = {{ my_json_content }}"
    - debug:
        msg: "minified_json = {{ my_json_content | from_json | to_json(separators=(',',':')) }}"

运行 $ ansible-playbook playbook.yml 命令。
TASK [debug] *******************************************************************
ok: [localhost] => {
    "msg": "json =  { \"a\" :   0,\n\"b\":   1,\n\"c\":    2}\n"
}

TASK [debug] *******************************************************************
ok: [localhost] => {
    "msg": "minified_json = {\"a\":0,\"c\":2,\"b\":1}"
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接