我们假设我在下面发出http请求,以更新mongoDB数据库中的某些记录:
PUT
http://dev.mycompany.co/ping
{" id":4432," name":" Jane Doe"," products":[{" id" :287},{" id":434}]}
请注意,"产品"中有两个对象的数组。上面的JSON的属性。我有通过Fiddler和我编写的ruby脚本以这种通用格式发送的数据。
通过Fiddler发送时,我在JSON中的数据被正确解析并更新到我的数据库中。通过我的ruby脚本发送时,JSON中的数据未正确解析。我一直试图找出原因。现在,我想知道当JSON与http请求一起发送时数据是如何实际发送的。有人能指出我正确的方向吗?
答案 0 :(得分:0)
在询问了一些关于SO的其他问题并做了更多研究之后,我得出了以下结论。
问:如何在http请求中发送JSON数据?
答:这取决于您在请求中发送JSON数据的方式(内容类型)
我遇到了两种发送JSON数据的方法。
使用内容类型 application / json
发送使用此内容类型,JSON数据按字面顺序发送。文字JSON数据存储为字符串并随请求一起发送。如果您的JSON很复杂,使用嵌套对象和数组等,这可能就是您想要的。有关使用Ruby的Net / HTTP发送嵌套JSON的工作示例,请参阅this SO question I asked上的答案。
使用内容类型 x-www-form-urlencoded
发送这就是Ruby的Net / HTTP请求通常被发送出去的方式。这些请求的形式类似于: id = 343?entity = Microsoft?foo = bar 。在您拥有复杂的JSON之前,此内容类型很好。