【发布时间】:2018-12-11 22:38:33
【问题描述】:
问题: 这是最好的方法吗?
工具:
jq --version
jq-1.5-1-a5b5cbe
要求:递归识别仅包含单个对象{} 的数组[] 并将数组转换回标准对象{}。本质上是在不需要时去除父数组。
什么似乎有效:
(..|select(type=="array" and .[1] == null ) | . ) |= add | .
用例:
Google 自定义搜索 JSON 包含大量数组,其中许多是单对象数组。 Logstash input、codec => json 和/或 json 过滤器似乎无法自动将单个对象数组转换为弹性搜索字段。
【问题讨论】:
-
要测试数组的长度是否为 1,您不能依赖测试
.[1]==null,因为第二个元素可能为空。您的“似乎正在运行”程序还有其他问题。