首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多个JSON对象连接到一个数组中

将多个JSON对象连接到一个数组中
EN

Stack Overflow用户
提问于 2020-12-16 00:41:36
回答 2查看 113关注 0票数 1

我有一个输出多个简单json对象的命令,如下所示(出于开发目的,以前通过管道传输到文件foo.txt):

代码语言:javascript
复制
$ cat foo.txt
{"a": "b"}
{"a": "e"}
{"a": "f"}

现在,我想让它像这样格式化:

代码语言:javascript
复制
{
  "a": ["b", "e", "f"]
}

我非常确定使用jq可以做到这一点,但我能得到的只有以下内容:

代码语言:javascript
复制
$ cat foo.txt |jq -n '.a |= [inputs]'
{
  "a": [
    {
      "a": "b"
    },
    {
      "a": "e"
    },
    {
      "a": "f"
    }
  ]
}

有什么提示吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-16 00:47:23

你们真的很亲近。JQ不会从输入对象中提取.a,除非您显式声明这一点。

代码语言:javascript
复制
$ jq -n '.a = [inputs.a]' foo.txt
{
  "a": [
    "b",
    "e",
    "f"
  ]
}
票数 2
EN

Stack Overflow用户

发布于 2020-12-16 00:47:11

我将使用以下内容:

代码语言:javascript
复制
jq --slurp --compact-output '{ a: map(.a) }' foo.txt

--slurp使jq将一系列JSON对象作为这些对象的数组进行读取。我们将这个对象数组映射到它们的.a字段的值数组,最后返回一个对象,该对象将这个数组作为它的.a字段。

你可以使用try it here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65310051

复制
相关文章

相似问题

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