首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在一个命令中从对象的diff字段中提取一些值

问如何在一个命令中从对象的diff字段中提取一些值
EN

Stack Overflow用户
提问于 2018-08-06 22:20:33
回答 2查看 36关注 0票数 0

有这样的json数据

代码语言:javascript
复制
➜  ~ cat foo.json | jq
{
  "data": {
    "foo": [
      {
        "table": "aaa"
      },
      {
        "table": "bbb"
      }
    ],
    "bar": [
      {
        "table": "ccc"
      },
      {
        "table": "ddd"
      }
    ]
  }
}

可以单独获取foo或bar表,

代码语言:javascript
复制
➜  ~ cat foo.json | jq '.data.foo[].table'
"aaa"
"bbb"
➜  ~ cat foo.json | jq '.data.bar[].table'
"ccc"
"ddd"

如何在一个命令中获取所有表值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-06 22:28:46

使用逗号运算符。

代码语言:javascript
复制
$ jq '.data["foo", "bar"][].table' foo.json

或

代码语言:javascript
复制
$ jq '.data | .foo, .bar | .[].table' foo.json

或者假设您想要获取data对象的任何属性。

代码语言:javascript
复制
$ jq '.data[][].table' foo.json
票数 1
EN

Stack Overflow用户

发布于 2018-08-06 22:39:38

如果您不关心“表”值出现在哪里,并且希望排除null和false值:

代码语言:javascript
复制
.. | .table? // empty

如果要包含null和false值:

代码语言:javascript
复制
.. | objects | has("table") | .table
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51709799

复制
相关文章

相似问题

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