首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用curl将json对象与数组放在一起

如何使用curl将json对象与数组放在一起
EN

Stack Overflow用户
提问于 2013-03-15 13:32:13
回答 5查看 198.9K关注 0票数 109

我有一系列的数据要输入数据库。输入数据的用户界面不适合批量输入,所以我尝试制定一个等效的命令行。当我在chrome中检查UI的网络请求时,我看到了一个json对象的PUT请求。当我尝试复制请求时

代码语言:javascript
复制
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)位置X不支持全局嵌套大括号

其中X是第一个"[“的字符位置。

如何放入一个包含数组的json对象?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-03-15 22:02:41

您的命令行应该在PUT中要发送的字符串之前插入一个-d/--data,并且您希望设置Content-Type并不接受。

代码语言:javascript
复制
curl -H 'Content-Type: application/json' -X PUT -d '[JSON]' \
     http://example.com/service

使用问题中的JSON数据,完整的命令行将变为:

代码语言:javascript
复制
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

注意: JSON数据包装仅用于可读性,对于curl请求无效。

票数 162
EN

Stack Overflow用户

发布于 2014-10-16 22:43:23

虽然最初的帖子有其他问题(即缺少"-d"),但错误消息更通用。

curl:(3)位置X不支持全局嵌套大括号

这是因为花括号{}和方括号[]是curl中特殊的全局字符。要关闭此功能,请使用"-g“选项。

例如,以下Solr facet查询将在没有"-g“的情况下失败,以关闭curl globbingcurl -g 'http://localhost:8983/solr/query?json.facet={x:{terms:"myfield"}}'

票数 100
EN

Stack Overflow用户

发布于 2013-05-22 21:10:14

值得一提的是,Accept标头告诉服务器我们接受的内容,而在此上下文中相关的标头是Content-Type

在发送JSON时,通常建议将Content-Type指定为application/json。对于curl,语法是:

代码语言:javascript
复制
-H 'Content-Type: application/json'

因此,完整的curl命令将是:

代码语言:javascript
复制
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`
票数 39
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15425446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档