我正在尝试使用 make s curl 调用编写一个 bash 脚本并取回一个 json 文档。json 文档有一个名为的键access_token
,我需要提取该字段的值。这是我的json文档
echo $json
{"access_token":"kjdshfsd", "key2":"value"}
Run Code Online (Sandbox Code Playgroud)
我没有jq
安装。
小智 19
不jq
,awk
,sed
:
#!/bin/bash
json='{"access_token":"kjdshfsd", "key2":"value"}'
echo $json | grep -o '"access_token":"[^"]*' | grep -o '[^"]*$'
Run Code Online (Sandbox Code Playgroud)
在这里测试和工作: https: //ideone.com/Fw4How
来源: https: //brianchildress.co/parse-json-using-grep
简短的回答:安装 jq
你不应该在没有 json 解析器的情况下解析 json。
要做到这一点jq
:
echo "$json" | jq -r '.access_token'
Run Code Online (Sandbox Code Playgroud)
我首选的 json 解析器是json,使用它你可以:
echo "$json" | json access_token
Run Code Online (Sandbox Code Playgroud)
注意:这两个解决方案都假设您的 json 对象与您在示例中显示的完全相同(或至少几乎完全相同),我知道事实并非如此。