Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ansible将JSON作为字符串传递而不引用它_Json_Ansible - Fatal编程技术网

ansible将JSON作为字符串传递而不引用它

ansible将JSON作为字符串传递而不引用它,json,ansible,Json,Ansible,我遇到了一个特别痛苦的任务: 从文件中读取JSON 将JSON作为字符串传递给helm,但不引用它 我希望helm values文件看起来像: x: | { "hello": "world" } 我在下面的查找{{lookup('file','./stuff.json')}中遇到的问题是ansible将它解释为dict并将dict传递给helm。这不起作用,因为我需要一个字符串。以下是helm values文件中的输出: x: hello: wo

我遇到了一个特别痛苦的任务:

  • 从文件中读取JSON
  • 将JSON作为字符串传递给helm,但不引用它
  • 我希望helm values文件看起来像:

    x: |
      { "hello": "world" }
    
    我在下面的查找
    {{lookup('file','./stuff.json')}
    中遇到的问题是ansible将它解释为dict并将dict传递给helm。这不起作用,因为我需要一个字符串。以下是helm values文件中的输出:

    x:
      hello: world
    
    然后我尝试了
    {{lookup('file','./stuff.json')|quote}
    。Ansible将字符串传递给helm,但该字符串周围有引号。当我尝试在部署中读取JSON时,我得到一个解析错误。以下是输出结果:

    x: '{ "hello": "world" }'
    
    我甚至按照建议尝试了
    {{lookup('file','./stuff.json')|to_json}
    ,但也失败了。

    使用
    {lookup('file','./stuff.json')|string}
    将强制Ansible将其作为字符串计算,而不添加引号

    有几个示例使用此过滤器

    可在文档中找到过滤器的文档。文件说明过滤器将:

    如果字符串不是unicode,则将其设置为unicode。这样,标记字符串就不会转换回unicode

    我不太清楚为什么这会纠正这个问题,但确实如此

    x: '{ "hello": "world" }'