问题
I am trying to use HTTPie to parse to send some nested JSON object, but I can not find how. It is pretty clear how to send a JSON object but not a nested one such as
{ "user": { "name": "john" "age": 10 } }
回答1:
You can pass the whole JSON via stdin:
$ echo '{ "user": { "name": "john", "age": 10 } }' | http httpbin.org/post
Or specify the raw JSON as value with :=:
$ http httpbin.org/post user:='{"name": "john", "age": 10 }'
回答2:
I like this way:
$ http PUT localhost:8080/user <<<'{ "user": { "name": "john" "age": 10 }}'
It is preferrable because it has the same prefix as the related commands, and so it is convenient to find the commands with Ctrl+R
in bash:
$ http localhost:8080/user/all
$ http GET localhost:8080/user/all # the same as the previous
$ http DELETE localhost:8080/user/234
If you have fishshell, which doesn't have Here Strings, I can propose the following workaround:
~> function tmp; set f (mktemp); echo $argv > "$f"; echo $f; end
~> http POST localhost:8080/user < (tmp '{ "user": { "name": "john" "age": 10 }}')
来源:https://stackoverflow.com/questions/37215565/sending-nested-json-object-using-httpie