如何通过环json文件记录在你

0

的问题

我的新需求,只是徘徊我怎么可能循环,通过一个json记录与你. 我有一个json文件,与下列数据内:

{
    "map": {
        "entry": [
            {
                "string": [
                    "6a032ae5-3eed-4d20-a9ef-ccbd88118c47"
                ]
            },
            {
                "string": [
                    "27617813-e268-4c94-b539-3550a3a8501a"
                ]
            },
            {
                "string": [
                    "b39b10fb-0538-42d7-96fc-553eee9c7ded"
                ]
            }
        ]
    }
}

我有以下代码需求的运行过java文件:

- name: Initialise variables
  set_fact:
    NEW_CODE_TEMPLATES_IDS: "{{ lookup('file', 'code_template_map/codeTemplate.json') | json_query('map.entry[*].item') }}"
    
    
- name: code template id
  debug:
    var: NEW_CODE_TEMPLATES_IDS

我期待的产出将如下:

6a032ae5-3eed-4d20-a9ef-ccbd88118c47
27617813-e268-4c94-b539-3550a3a8501a
b39b10fb-0538-42d7-96fc-553eee9c7ded

但由于某些原因,这似乎并不为我工作。 没人知道为什么吗?

ansible
2021-11-24 05:09:25
1

最好的答案

1

你是不是转换的串返回的查找,从JSON入数据结构(json_query() 不能使用结果的方式串,它希望解析数据结构),并且 json_query('map.entry[*].item') 不匹配的数据的提供。

我会避免 json_query() 并使用标准的神功能对这一数据的操纵:

"{{ (lookup('file', 'code_template_map/codeTemplate.json') | from_json).map.entry | map(attribute='string') | flatten }}"

如果你坚持使用 json_query()它将是:

"{{ (lookup('file', 'code_template_map/codeTemplate.json') | from_json) | json_query('map.entry[*].string[]') }}"
2021-11-24 06:21:42

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................