Json解析数据linux

Json解析数据linux,json,parsing,Json,Parsing,您好,我需要解析来自的数据,并将它们放在bashshell中,这样当用户询问公司时,它会为公司提供信息。我试过类似的东西 curl-s | jq jq'.选择[“公司”]'positions.json 但它一直在告诉我:jq:error:cannotindexarray with string如果您想根据特定公司筛选结果,那么您可以在jq: jq '.[] |select(.company == "companyName")' 如果您想生成有效的JSON数组,那么可以使用[

您好,我需要解析来自的数据,并将它们放在bashshell中,这样当用户询问公司时,它会为公司提供信息。我试过类似的东西

curl-s | jq

jq'.选择[“公司”]'positions.json


但它一直在告诉我:jq:error:cannotindexarray with string

如果您想根据特定公司筛选结果,那么您可以在jq:

jq '.[] |select(.company == "companyName")'
如果您想生成有效的JSON数组,那么可以使用
[]

jq  '[ .[] |select(.company == "companyName")]'
对于整个bash脚本
run.sh companyName
,您可以这样做:

#!/bin/bash

curl -s https://jobs.github.com/positions.json?search=node | jq "[ .[] |select(.company == \"$1\")]"
您可以在此处以交互方式进行尝试:


ty如果我想从命令行获取用户输入?找到确切的公司名?例如./exercise.sh companyName并将整个公司jsoni替换为这个jq'[.]| select(.companyName==“companyName”)]',而jq'[.]| select(.company==“Autodesk”)]]positions.json在当前集合中,我也没有找到任何来自Autodesk的记录。如果您只需要部分匹配,那么您可以将
==“companyName”
替换为
| contains(“partialName”)
ty很多它工作正常,如果我想从用户2变量中删除它?比如./Location company如果您想要更多变量,那么您可以将它们用作
$2
$3
。。。。要组合条件,需要对条件使用
<代码>jq'[.]|选择(.company==“Playco”和.title==“Engineering Manager”)”