我有一个文件,其中包含一些性能测试的输出。它看起来类似于以下内容:
index | master | performance-fix | change %
--- | --- | --- | ---
load | 26212.8 | 28223.6 | 7.67%
type | 67.5 | 75.41 | 11.72%
minType | 56.91 | 59.6 | 4.73%
maxInserterSearch | 185.45 | 283.25 | 52.74%
minInserterHover | 25.97 | 27.55 | 6.08%
maxInserterHover | 44.47 | 44.7 | 0.52%
我正试图使用该表数据提交一份关于Github问题的新评论。标准文本运行良好,但当我尝试传递表格时,我会收到错误:
{
"message": "Problems parsing JSON",
"documentation_url": "https://docs.github.com/rest/reference/issues#update-an-issue-comment"
}
我的cURL请求如下:
NEW_COMMENT=$(curl -sS
-X PATCH
-u $GH_LOGIN:$GH_AUTH_TOKEN
-H "Accept: application/vnd.github.v3+json"
"https://api.github.com/repos/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/issues/comments/$COMMENT_ID"
-d '{"body": "Results: <br />'"$TEST_RESULTS"'"}')
我还尝试过使用jq和--data-urlencode
标志创建{"body": ...}
。两者都返回相同的";解析JSON的问题";错误
看起来$TEST_RESULTS
包含的字符使JSON与您想象的不一样,比如包含引号和换行符
也许像这样转义JSON输出将有助于
escaped="$(printf '%s' "$TEST_RESULTS" | jq -Rs '.')"
...
-d '{"body": "Results: <br />'"$escaped"'"}')