【发布时间】:2013-12-03 13:53:37
【问题描述】:
我正在尝试使用带有 curl 的 API,返回 JSON:
response=$(curl -i --user api:$APIKey --data-binary @$target https://api.tinypng.com/shrink)
接下来,我尝试使用函数解析(简要)响应:
parseJson(){
result="$1"
result=($(echo $result | python -mjson.tool))
result=${result%\"*}
result=${result##*\"}
return $result
}
我这样称呼它:message=$(parseJson "$response" message)。仅供参考,响应是多行的。
但是奇怪的事情发生了:python 给了我No JSON object could be decoded,但是如果我回显 $result 有一个很好的 JSON 字符串。更奇怪的是,如果我在调用 python 之前对其进行了回显,那么无论如何,python 似乎都是先执行的。
有什么异步技巧吗?为什么我不能将我的变量字符串传递给 python ?
任何帮助或更好的方法将不胜感激!
【问题讨论】:
-
你确定你收到的字符串是一个实际的 json 字符串吗?例如,您是否在 jsonformatter.curiousconcept.com 上检查过?
-
我在终端上测试过,效果很好。即使在没有 bash 功能的情况下对其进行了测试,也可以正常工作。这就是为什么我想知道是否将它作为参数传递会以某种方式影响它