首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何仅显示不属于JSON 1.3的数组或对象的顶级JSON条目?

如何仅显示不属于JSON 1.3的数组或对象的顶级JSON条目?
EN

Stack Overflow用户
提问于 2019-08-07 19:05:47
回答 1查看 684关注 0票数 3

我有一个JSON结构,我只想打印简单类型的条目,例如不打印数组或对象。

样本输入:

代码语言:javascript
运行
复制
{
  "person": {
    "address": {
      "city": "NY",
      "street": "Wall Street"
    },
    "god": true,
    "nicks": [
      "Lar",
      "L",
      "Yo"
    ],
    "name": "Larry",
    "id": 1
  }
}

预期产出:

代码语言:javascript
运行
复制
"god": true,
"name": "Larry",
"id": 1

我尝试了许多不同的变体,但都没有用:

jq '.person | with_entries(.) | select(map(type) != "array" and map(type) != "object")'

请注意,我是在jq版本1.3。

提前感谢您的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-07 19:36:35

您实际上并没有对with_entries电话做任何事情。但你应该在那里过滤。筛选值类型既不是数组也不是对象的条目。

代码语言:javascript
运行
复制
.person | with_entries(select(.value | type | . != "array" and . != "object"))

如果您使用的是最新版本的jq,则可以使用scalars内置程序进行筛选,从而有效地完成相同的任务。

代码语言:javascript
运行
复制
.person | with_entries(select(.value | scalars))
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57400852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档