如何使用curl将数组放入json对象
我有一系列数据输入数据库。 输入数据的用户界面不适合批量输入,所以我试图制定一个等效的命令行。 当我使用chrome检查UI的网络请求时,我看到一个json对象的PUT请求。 当我尝试复制请求时
curl -H 'Accept: application/json' -X PUT '{"tags":["tag1","tag2"],"question":"Which band?","answers":[{"id":"a0","answer":"Answer1"},{"id":"a1","answer":"answer2"}]}' http://example.com/service`
我收到一个错误
curl:(3)[globbing]在位置X处不支持嵌套大括号
其中X是第一个“[”的字符位置。
我怎样才能把一个包含数组的json对象?
你的命令行应该在你想在PUT中发送的字符串之前插入-d / - 数据,并且你想要设置Content-Type而不是Accept。
curl -H 'Content-Type: application/json' -X PUT -d '[JSON]' http://example.com/service
使用问题中的确切JSON数据,完整的命令行将变为:
curl -H 'Content-Type: application/json' -X PUT
-d '{"tags":["tag1","tag2"],"question":"Which band?","answers":[{"id":"a0","answer":"Answer1"},{"id":"a1","answer":"answer2"}]}'
http://example.com/service
虽然原始文章有其他问题(即缺少“-d”),但错误消息更通用。
curl:(3)[globbing]在位置X处不支持嵌套大括号
这是因为大括号{}和方括号[]是卷曲中特殊的通配符。 要关闭这个通配符,请使用“ -g ”选项。
举例来说,如果没有“-g”关闭curl globbing ,以下Solr构面查询将会失败: curl -g 'http://localhost:8983/solr/query?json.facet={x:{terms:"myfield"}}'
应该指出的是Accept
头告诉服务器一些我们正在接受的东西,而这个上下文中的相关头文件是Content-Type
发送JSON时,通常建议将Content-Type
指定为application/json
。 对于curl来说,语法是:
-H 'Content-Type: application/json'
所以完整的curl命令将是:
curl -H 'Content-Type: application/json' -H 'Accept: application/json' -X PUT -d '{"tags":["tag1","tag2"],"question":"Which band?","answers":[{"id":"a0","answer":"Answer1"},{"id":"a1","answer":"answer2"}]}' http://example.com/service`
链接地址: http://www.djcxy.com/p/48561.html