当前位置: 首页 > 知识库问答 >
问题:

使用jq连续解析和显示json中的多个字段

郑晨
2023-03-14

我有这个Json

{
    "users": [
        {
            "first": "Stevie",
            "last": "Wonder"
        },
        {
            "first": "Michael",
            "last": "Jackson"
        }
    ]
}

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

Stevie Wonder
Michael Jackson

这就是我取得的成绩-

jq '.users[].first, .users[].last'

但它显示

"Stevie"
"Michael"
"Wonder"
"Jackson"

请注意以下事项:

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

共有3个答案

鄂和璧
2023-03-14
jq '.users[]|.first,.last' | paste - -
萧嘉禧
2023-03-14

您可以使用加法连接字符串。

字符串是通过联接到更大的字符串来添加的。

jq '.users[] | .first + " " + .last'

当< code>first和< code>last都是字符串时,上述操作有效。如果您提取不同的数据类型(数字和字符串),那么我们需要转换成等效的类型。关于这个问题的解决方案。比如说。

jq '.users[] | .first + " " + (.number|tostring)'
孔和风
2023-03-14

我建议使用字符串插值:

jq '.users[] | "\(.first) \(.last)"'

我们正在通过管道传输 .users[] 的结果,以使用字符串插值生成字符串“.first .last”。\(foo) 语法用于 jq 中的字符串插值。因此,对于上面的例子,它变成了“Stevie Wonder”(“.users[].first .users[].second”工作元素)和“Michael Jackson”。

jq 参考:字符串插值

 类似资料:
  • 问题内容: 我正在尝试解析一个JSON结构,如: 也就是说,JSON中的元素是带有转义json的字符串。 所以,我有一些类似的东西 但这崩溃了 这是因为.c的输出是字符串,而不是JSON。如何让jq解析此字符串? 我最初的解决方案是使用sed将替换所有的逃生字符(,和),但凌乱的,我认为有内置的方式做到这一点? 谢谢! 编辑:另外,这里可用的jq版本是: 我想我可以根据需要更新它。 问题答案: j

  • 问题内容: 我正在尝试在Python中加载和解析JSON文件。但是我在尝试加载文件时遇到了困难: 产量: 我看着 18.2。— Python文档中的 JSON编码器和解码器 ,但是通读这个看起来糟透了的文档非常令人沮丧。 前几行(用随机条目匿名): 问题答案: 您有一个JSON Lines格式的文本文件。您需要逐行解析文件: 每 行都 包含有效的JSON,但总的来说,它不是有效的JSON值,因为没

  • 问题内容: 过去几天,我一直在搜索有关此内容的信息,但我认为我找不到正确的指针。如果发现重复,请与适当的问题合并。 我是使用JSON的新手,作为我的项目之一,我需要解码JSON文件并对其进行进一步处理。但是,当我尝试使用Json- simple库解码时,在解析的对象中出现了一些奇怪的问号,而不是实际的字符。示例代码如下所示: 我也尝试过使用Json-lib,但结果相同。 谢谢您的帮助。 问题答案:

  • 问题内容: 我在Angular中显示JSON数据时遇到麻烦。我已成功将数据从后端发送到前端(角度),但无法显示它们。 我已经尝试在JSFiddle上模拟类似的情况,尽管我已经从后端准备了数据 获取/发送数据->后端: 获取数据->前端(角度) 带有ng-repeat指令的HTML部分: 谁知道是什么问题吗? 问题答案: 据我所知,您将对象存储为JSON,但从未对其进行解析。因此使用 代替 应该解决

  • 问题内容: 我有一个来自服务器的JSON字符串,它看起来像这样: 我的任务是获取“ term_id”和“ name”字段的值。我曾经使用以下代码从当前JSONObject中获取“类别”对象: 和看起来像这样: 但是在那之后,我不知道如何获得这些领域。有什么方法可以从JSONObject获取所有JSONObject子级吗? 如果您有源代码或可以举一个例子,请与我分享。 问题答案: 在这里,您可以检索

  • 本文向大家介绍C ++中的连续数字和,包括了C ++中的连续数字和的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个正整数N,我们必须找到多少种方法可以将其写为连续的正整数之和? 因此,如果输入像10,那么输出将是3,这是因为我们可以将10表示为5 + 5和7 + 3,所以有两种不同的方式。 为了解决这个问题,我们将遵循以下步骤- ret:= 1 对于初始化i:= 2,(将i增加1),请执行