json - 尝试使用 jq shell 脚本解析 JSON 数据时出现语法错误

标签 json linux shell jq

我有以下输入,我正在尝试获取关键详细信息并尝试形成以下 json 文件,但是当我尝试运行以下命令时,它返回了语法错误,我不确定如何解决这个

输入(Response.Json):

{
    "expand": "schema,names",
    "startAt": 0,
    "maxResults": 50,
    "total": 4,
    "issues": [{
            "expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
            "id": "1999875",
            "self": "https://amazon.kindle.com/jira/rest/api/2/issue/1999875",
            "key": "KINDLEAMZ-67578"
        },
        {
            "expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
            "id": "2019428",
            "self": "https://amazon.kindle.com/jira/rest/api/2/issue/2019428",
            "key": "KINDLEAMZ-68661"
        },
        {
            "expand": "operations,versionedRepresentations,editmeta,changelog,renderedFields",
            "id": "2010958",
            "self": "https://amazon.kindle.com/jira/rest/api/2/issue/2010958",
            "key": "KINDLEAMZ-68167"
        }
    ]
}

命令:

> getResponse=$( jq 'reduce (.issues | to_entries[]) as {$key,$value}
> ({}; .["JIRA-\($key + 1)"] = $value.key )' response.json );

错误:

error: syntax error, unexpected '{', expecting '$' reduce (.issues | to_entries[]) as {$key,$value} ({}; .["JIRA-($key + 1)"] = $value.key ) ^ 1 compile error

预期输出:

{
"JIRA-1":"KINDLEAMZ-67578",

"JIRA-2":"KINDLEAMZ-68661",

"JIRA-3":"KINDLEAMZ-68167"
}

任何人请帮助我解决这个问题。我完全被封锁了,毫 headless 绪......

最佳答案

我已验证以下内容适用于您的 JSON 示例;

.issues | reduce to_entries[] as $kv ({}; .["JIRA-\($kv.key)"] = $kv.value.key )

关于json - 尝试使用 jq shell 脚本解析 JSON 数据时出现语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58103344/

相关文章:

linux - xcb_grab_key 上没有错误,但事件循环未捕获(全局热键)

linux - 找到模式时将行转为列

linux - 我无法在 Parrot OS 上添加存储库

java - java中显示系统消息而不中断用户输入

sql - 在 Postgres 9.6 的 json 列中查询属性数组内的数据

c - stdlib.h 没有 putenv 的声明

json - 在 Swift 中解码不同类型的 JSON 数组

java - 调用 OOM killer

javascript - 在 JSON 字段中查找序列

android - 从谷歌方向网络服务解析 json 文件