首页 > 解决方案 > 如何解析没有标签的数组

问题描述

给定以下输出,如何检查空数组?

ok: [10.102.11.12] => {
    "msg": [
        [
            {
                "foo": "bar"
            }
        ],
        [
            {
                "test": "yes"
            }
        ],
        []
    ]
}

我有这样的事情,但我得到一个错误:FAILED! => {"msg": "list object has no element ()"}

  - name: test
    debug: msg="{{foo}}"
    failed_when: item|length==0
    with_items: "{{foo.msg[]}}"

标签: ansible

解决方案


(ansible 2.8.3)

简单when的条件应该可以完成这项工作。下面的任务

- debug:
    var: item
  loop: "{{ my_output }}"
  when: item|length > 0

"item": [
    {
        "foo": "bar"
    }
]

"item": [
    {
        "test": "yes"
    }
]


笔记

1)空索引msg[]是错误的原因

失败的!=> {"msg": "列表对象没有元素 ()"}


推荐阅读