2
我正在构建一个iOS应用程序,它需要发布到RoR API。如何使用curl发布JSON数据并将其用于RoR?
要测试POST,我运行这个命令:
curl -d @/tmp/data localhost:3000/api/ratings
其中,/ tmp /数据包含散列的数组:
[ { "uid": "gilt_162929239", "rate": 1 } ]
在Ruby中,则params看起来是这样的:
[1] pry(#<Api::PromotionRatingsController>)> params
=> {" { \"uid\": \"good_162929239\", \"rate\": 1 } "=>nil,
"format"=>"json",
"action"=>"create",
"controller"=>"api/ratings"}
我该如何让Rails创建哈希数组来迭代每个?
编辑:我看到我缺少标题。
添加到curl命令行:
--header "Accept: application/json" --header "Content-type: application/json"
现在,这里是我的PARAMS:
[1] pry(#<Api::PromotionRatingsController>)> params
=> {"_json"=>[{"uid"=>"good_162929239", "rate"=>1}],
"format"=>"json",
"action"=>"create",
"controller"=>"api/ratings",
"promotion_rating"=>{"_json"=>[{"uid"=>"good_162929239", "rate"=>1}]}}
还是不正确的。
不是Ruby开发者,但通常你会解码那个json字符串,它将它转换成本地数据结构。然后,您可以像使用任何其他本机结构一样使用您的宿主语言的数组/对象/散列/任何操作工具。 –
在RoR IIRC中,它应该自动将JSON数据转换为本机对象。但这不是为我而发生的。 – Eric
同样,我偶尔在RoR上工作,因此不会将此作为答案。你可以从'params'哈希中提取JSON字符串,将它分配给一个对象,然后按照这篇文章中的解释使用'json' gem? http://stackoverflow.com/questions/7964282/convert-json-to-ruby-hash。 – verisimilitude