草庐IT

jq-textBox

全部标签

json - 如何在 jq 中将 JSON 对象转换为 key=value 格式?

在jq中,如何使用key=value将JSON转换为字符串?发件人:{"var":1,"foo":"bar","x":"test"}收件人:var=1foo=barx=test 最佳答案 你可以试试:jq-r'to_entries|map("\(.key)=\(.value|tostring)")|.[]'test.json这是一个演示:$cattest.json{"var":1,"foo":"bar","x":"test"}$jq-r'to_entries|map("\(.key)=\(.value|tostring)")|.[]

arrays - 使用 jq 向现有 JSON 数组添加新元素

我想使用jq``add命令将元素附加到JSON文件中的数组,但它不起作用。report-2017-01-07.json文件:{"report":"1.0","data":{"date":"2010-01-07","messages":[{"date":"2010-01-07T19:58:42.949Z","xml":"xml_samplesheet_2017_01_07_run_09.xml","status":"OK","message":"metadataloadedintoiRODSsuccessfully"},{"date":"2010-01-07T20:22:46.949Z"

json - 使用 jq 从 JSON 输出中提取特定字段

我有一个JSON输出如下:{"example":{"sub-example":[{"name":"123-345","tag":100},{"name":"234-456","tag":100},{"name":"4a7-a07a5","tag":100}]}}我想提取三个“名称”字段的值,并将其存储在三个变量中。我试过catjson_file|jq'.["example.sub-example.name"]'提取“name”字段的值,但这不起作用。谁能告诉我如何使用jq(或其他方法)来实现这一点? 最佳答案 如果您只想提取name

json - 使用 jq 在 JSON 中连接 2 个字段

我正在使用jq重新格式化我的JSON。JSON字符串:{"channel":"youtube","profile_type":"video","member_key":"hello"}想要的输出:{"channel":"profile_type.youtube"}我的命令:echo'{"channel":"youtube","profile_type":"video","member_key":"hello"}'|jq-c'。|{channel:.profile_type+“。”+.member_key}'我知道下面的命令连接字符串。但它的工作逻辑与上述不同:echo'{"channe

json - jq:打印对象中每个条目的键和值

如何让jq像这样获取json:{"host1":{"ip":"10.1.2.3"},"host2":{"ip":"10.1.2.2"},"host3":{"ip":"10.1.18.1"}}并生成此输出:host1,10.1.2.3host2,10.1.2.2host3,10.1.18.1我对格式不感兴趣,我只是不知道如何访问键名和值。 最佳答案 要将顶级key作为流获取,您可以使用built-infunction键[]。因此,解决您的特定问题的一种方法是:jq-r'keys[]as$k|"\($k),\(.[$k]|.ip)"'k

json - 如何使用 jq 将 JSON 字符串格式化为表格?

刚开始使用Bash脚本,偶然发现jq可以使用JSON。我需要将如下所示的JSON字符串转换为表格以便在终端中输出。[{"name":"George","id":12,"email":"george@domain.example"},{"name":"Jack","id":18,"email":"jack@domain.example"},{"name":"Joe","id":19,"email":"joe@domain.example"}]我想在终端中显示的内容:IDName=================12George18Jack19Joe注意我不想显示每一行的email属性,所

json - jq 条件输出

我正在使用jq玩json。我想知道如何有条件地在其中打印一些东西。假设我对字段调用geo感兴趣。我使用了以下命令,发现只有一个geo为null的条目:%catall.json|jq'.geo!=null'|sort|uniq-c1false6891true如何只打印该条目而不打印其他所有内容?在手册中没有看到类似print命令的内容。这不起作用:catall.json|jq'如果.place==null那么.结束'。jq提示语法错误。 最佳答案 您可以使用select仅获取所需条目的功能:jq'select(.geo!=null)'

json - 如何用 jq (或其他替代方法)解析 JSON 字符串?

我正在尝试让jq解析JSON结构,例如:{"a":1,"b":2,"c":"{\"id\":\"9ee...\",\"parent\":\"abc...\"}\n"}即JSON中的一个元素是一个带有转义json的字符串。所以,我有一些类似的东西$jq[.c]myFile.json|jq[.id]但是jq:error:Cannotindexstringwithstring会崩溃这是因为.c的输出是一个字符串,而不是更多的JSON。如何让jq解析这个字符串?我最初的解决方案是使用sed替换所有转义字符(\":\"、\"、\"和\")但这很困惑,我认为jq中内置了一种方法可以做到这一点?谢谢

json - 使用 jq 或替代命令行工具比较 JSON 文件

是否有任何命令行实用程序可用于查找两个JSON文件是否相同,并且对内字典键和内列表元素排序具有不变性?这可以通过jq来完成吗?或其他等效工具?示例:这两个JSON文件完全相同A:{"People":["John","Bryan"],"City":"Boston","State":"MA"}B:{"People":["Bryan","John"],"State":"MA","City":"Boston"}但这两个JSON文件是不同的:A:{"People":["John","Bryan","Carla"],"City":"Boston","State":"MA"}C:{"People":

json - 将 bash 变量传递给 jq

我编写了一个脚本来从file.json中检索特定值。如果我向jqselect提供值,它会起作用,但变量似乎不起作用(或者我不知道如何使用它)。#!/bin/sh#thisworks***projectID=$(catfile.json|jq-r'.resource[]|select(.username=="myemail@hotmail.com")|.id')echo"$projectID"EMAILID=myemail@hotmail.com#thisdoesnotwork***novalueisprintedprojectID=$(catfile.json|jq-r'.resour