从curl命令输出中获取值

xqkwcwgp  于 2022-11-13  发布在  其他
关注(0)|答案(2)|浏览(227)

我有下面2个输出格式,这是一个输出的curl命令,第一个是从昂首阔步的网站和第二个是当我运行curl从linux。
我想在这两种情况下获取data字段的值,例如,data的当前值是0,因此它应该是0,不带双引号。
如何在Linux中解压缩:

{
  "status": "SUCCESS",
  "responseData": {
    "data": [
      "0"
    ]
  },
  "error": null
}

{"status":"SUCCESS","responseData":{"data":["0"]},"error":null}
ngynwnxp

ngynwnxp1#

例如,您可以使用带有-r(或--raw-output)标志的jq命令,如下所示:* (由于data的值是array,因此获取例如具有[0]的第一个元素)*

curl https://server.com/rest-api/foo | jq -r '.responseData.data[0]'

# Test:
echo '{"status":"SUCCESS","responseData":{"data":["0"]},"error":null}'| jq -r '.responseData.data[0]'
# Output:
0
cclgggtu

cclgggtu2#

您可以尝试使用sed-假设格式是一致的-如下所示

curl https://server.com/rest-api/foo | sed -r 's/^.*data\":\[\"(.*)\"].*$/\1/'

相关问题