首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用jq串行解析和显示json中的多个字段

使用jq串行解析和显示json中的多个字段
EN

Stack Overflow用户
提问于 2015-01-27 14:54:34
回答 8查看 271.3K关注 0票数 336

我有这个Json

代码语言:javascript
复制
{
    "users": [
        {
            "first": "Stevie",
            "last": "Wonder"
        },
        {
            "first": "Michael",
            "last": "Jackson"
        }
    ]
}

使用jq,我想连续显示名字和姓氏。就像这样-

代码语言:javascript
复制
Stevie Wonder
Michael Jackson

这就是我所走的路-

代码语言:javascript
复制
jq '.users[].first, .users[].last'

但它会显示

代码语言:javascript
复制
"Stevie"
"Michael"
"Wonder"
"Jackson"

请注意以下事项:

  1. 我不想要的双引号。
  2. 我不想要的回车。
  3. 它乱七八糟。我的查询首先显示所有名字,然后显示所有姓氏。然而,我想要先到最后,先到最后的一对。
EN

回答 8

Stack Overflow用户

发布于 2015-07-15 06:04:31

我推荐使用字符串插值:

代码语言:javascript
复制
jq '.users[] | "\(.first) \(.last)"'

reference

票数 457
EN

Stack Overflow用户

发布于 2015-08-03 23:41:26

您可以使用addition来连接字符串。

Strings是通过加入一个更大的字符串来添加的。

代码语言:javascript
复制
jq '.users[] | .first + " " + .last'

firstlast都是字符串时,上述方法有效。如果你提取不同的数据类型(数字和字符串),那么我们需要转换成等价的类型。指的是solution on this question。例如。

代码语言:javascript
复制
jq '.users[] | .first + " " + (.number|tostring)'
票数 300
EN

Stack Overflow用户

发布于 2019-06-28 11:25:01

代码语言:javascript
复制
jq '.users[]|.first,.last' | paste - -
票数 58
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28164849

复制
相关文章

相似问题

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