【发布时间】:2019-09-17 09:21:47
【问题描述】:
我正在尝试通过 rest api 从工件下载工件(.war 文件)。我从工件中以 JSON 格式获取文件夹名称,我想通过 shell 脚本在一个变量中获取该名称,但如果不使用 JSON 工具和 JQ 工具,我无法做到这一点,因为我的服务器不包含这两者。有人可以帮我解决这些问题吗?
我试过下面的命令
$ databasename=`cat process.json | json select '.uri'`
$ echo $databasename
和
$ databasename=`jq '.uri' process.json`
因为我没有 JQ 和 JSON 工具,所以失败了。
$ curl -u User:API Key https://artifactory.es.abc.com/artifactory/api/storage/abc/com/xyz/aa/bb/xx/?list&listFolders=1&includeRootPath=0 > process.json
$ databasename=`cat process.json | json select '.uri'`
$ echo $databasename
【问题讨论】:
-
在链接的副本中使用
python查看答案。 (也有一些基于awk的解决方案,但由于通常的原因,它们的能力较差)。 -
...并注意 none 您的答案以“解析”一词的正式含义或“JSON”的广义含义解析为“所有文档”符合 JSON 规范”。有很多极端情况文本解析器将一无所知——例如,如果某些内容包含
\"而不是文字引号,则需要在数据中转换为"而不是结束它所属的字符串.并且字符串 可以 包含引号(如果被引用的话),或者花括号......等等。