从json文件中提取值

sin*_*rba 2 bash json jq

我有一个从API输出的文件,它包含一个JSON.

{
    "result": {
        "id": "f34fdasdfaa4364adc42b3a57",
        "modified_on": "2018-06-02T17:08:17.106435Z"
    },
    "success": true
}
Run Code Online (Sandbox Code Playgroud)

我只需要id的值(在我的例子中是f34fdasdfaa4364adc42b3a57)

我会用bash做的:

#!/usr/bin/env bash

#Pseudocode
id=$(grep -Po '"id":.*?[^\\]",' id.txt)
# /Pseudocode
curl -X DELETE "https://www.example.com/delete/$id"
Run Code Online (Sandbox Code Playgroud)

我确实找到了以前的答案并得到了这个:用Unix工具解析JSON

但正确的答案提取键和值,我只会重视(不再操纵字符串)

谢谢您的帮助

Cyr*_*rus 9

id=$(jq -r '.result.id' id.txt)
Run Code Online (Sandbox Code Playgroud)

输出到变量id:

f34fdasdfaa4364adc42b3a57