Hi Team,

I'm encountered some issue with set_facts from variable with json and for 
this reason I'm tried to understand this. To reproduce this case I'm using 
the example from here : playbooks filters 
<https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html#filters-for-formatting-data>

tasks
  - shell: cat /some/path/to/file.json 
    register: result 

  - set_fact: 
      myvar: "{{ result.stdout | from_json }}"


I've created one example.fson file :
# cat files/example.json
json_example: |
  {
      "example_simple": {
          "name": "simple",
          "foo": "value",
          "item": "this"
      },
  }


Here's the task file :
# cat tasks/main.yml
---
- name: Read JSON file 
  shell: cat ../files/example.json
  register: json
  
- name: Get simple value.
  set_fact:
    simple_value: "{{ (json.stdout | from_json).example_simple.name }}"


- name: Simple debug.
  debug:
    msg: "{{ simple_value }}"


And here the result:
fatal: [localhost]: FAILED! => {"msg": "the field 'args' has an invalid 
value ({u'simple_value': u'{{ (json.stdout | from_json) }}'}), and could 
not be converted to an dict.The error was: No JSON object could be 
decoded\n\nThe error appears to be in 
'/etc/ansible/roles/testrole/tasks/main.yml': line 7, column 3, but may\nbe 
elsewhere in the file depending on the exact syntax problem.\n\nThe 
offending line appears to be:\n\n\n- name: Get simple value.\n  ^ here\n"}

It tells me that the input cannot be converted to dict, But why and what is 
the problem? Could someone explain me this problem?
I cannot understand what is wrong.

Best regards, J






-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/76189198-429c-4025-98f8-92e7f69ff417%40googlegroups.com.

Reply via email to