Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 "edge_router_uuid.stdout": { "buildInfo": { "buildNumber": "20004", "buildTimestamp": "1539995399724", }, "isUp": true, "pod": "gateway", "reachable": true, "region

我有下面的json

    "edge_router_uuid.stdout": {
        "buildInfo": {
            "buildNumber": "20004",
            "buildTimestamp": "1539995399724",
        },
        "isUp": true,
        "pod": "gateway",
        "reachable": true,
        "region": "dc-1",
        "tags": {
        ........ 

实际上,这是一个很大的json,我在上面展示的只是其中的一部分。我需要使用ansible中的“debug”来获取区域和可访问值的变量值。当我尝试下面的方法时

  - debug:
      var: edge_router_uuid.stdout.region
下面是一个错误

ok: [10.10.10.10] => {
    "edge_router_uuid.stdout.region": "VARIABLE IS NOT DEFINED!"

JSON语法是错误的。问题是“,”落后于最后一个值

    "buildInfo": {
        "buildNumber": "20004",
        "buildTimestamp": "1539995399724",
    }
正确的语法是

    "buildInfo": {
        "buildNumber": "20004",
        "buildTimestamp": "1539995399724"
    }

最后,我可以得到它如下

- set_fact:
    response_dict: "{{ edge_router_uuid.stdout }}"
我最终得到了一个名为response_dict的字典。然后我可以得到如下区域值:

- debug:
    var: response_dict.region

实际上,这是一个很大的json,我在上面展示的只是其中的一部分