使用jq解析不带分隔符的JSON字符串

问题描述 投票:1回答:1

我有一个不带分隔符','的json字符串。如何使用jq解析?

$echo '{"access_token":"XXXX""expires_in":300"token_type":"Bearer"}' | jq -r .access_token

上面的行给我下面的错误:-

parse error: Expected separator between values at line 1

我知道问题是因为提供的JSON字符串未用逗号分隔。但这就是我从服务器得到的响应。我如何解析这样的字符串?我想检索键“ access_token”的值

json linux parsing ubuntu jq
1个回答
0
投票

如果您知道访问令牌永远不包含引号,则可以对sed使用正则表达式。

echo '{"access_token":"XXXX""expires_in":300"token_type":"Bearer"}' |
    sed 's/"access_token":"\([^"]*\)/\1/'

\(\)之间的捕获组捕获引号之间的字符串,替换字符串中的\1提取它。

© www.soinside.com 2019 - 2024. All rights reserved.