使用Bash发送JSON格式的HTTP POST请求

6
我想向只接受json对象的Web服务发送一些数据。我将使用curl进行HTTP POST,但我想知道是否有一个库可以在bash中创建json对象。
另一个要求是避免安装其他软件包(rpm / apt-get),而只需使用其他bash文件作为库即可。

寻找信息的位置是http://json.org。 - glenn jackman
3个回答

13

这是一个从BigQuery API获取的示例。

curl -H "Authorization: GoogleLogin auth=<<YOUR_TOKEN>>" \
-X POST \
-H "Content-type: application/json" \
-d '{"params":{"q":"select count(*) from [bigquery/samples/shakespeare];"},"method":"bigquery.query"}' \
'https://www.googleapis.com/rpc'

2

请查看TickTick

它是一个真正的Bash JSON解析器。

字符串化程序即将推出(但使用bash的foreach创建自己的字符串化程序并不困难)。

#!/bin/bash
. /path/to/ticktick.sh

# File
DATA=`cat data.json`
# cURL
#DATA=`curl http://foobar3000.com/echo/request.json`

tickParse "$DATA"

echo ``pathname``
echo ``headers["user-agent"]``

0
我推荐使用Jshon。 http://kmkeen.com/jshon/ 它旨在尽可能地在shell内部使用,并替换了由grep/sed/awk制作的脆弱的临时解析器,以及由perl/python制作的重量级单行解析器。
需要Jansson,但您可以构建静态链接版本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接