Rails为API POST生成JSON

时间:2015-12-28 17:26:13

标签: ruby-on-rails json

我正在关注一些API文档,作为帖子的一部分,我需要以这种格式生成一些JSON:

{
 "panelist": {
 "email_address": "test@example.com",
 "gender": "m",
 "postal_code": "12345",
 "year_of_birth": 1997,
 “variables”: [1000,1001]
 }
}

在Rails中生成此内容的最佳方法是什么(我没有Panelist模型,而是大部分内容都存储在我的Appuser模型中,因此gender实际上是@appuser.genderparams = { "gender" => "m", "postal_code" => "12345" } )。

过去我刚做过像

这样的事情
set_form_data

然后在我的请求中http = Net::HTTP.new(uri.host, uri.port) request = Net::HTTP::Post.new(uri.request_uri) request.set_form_data(params) response = http.request(request)

panelist

to_json内的嵌套参数让我失望。

我确实尝试使用appuser = { "panelist" => { "email" => "test@example.com", "zip" => "12345" } } appuser.to_json => "{\"panelist\":{\"email\":\"test@example.com\",\"zip\":\"12345\"}}" 来执行此操作:

var textboxes = new List<TextBox>(new[] { textbox1, textbox2, textbox3 });

但似乎我或多或少只是对json进行硬编码。我想我能做到,但感觉可能会有更简单的方法。

1 个答案:

答案 0 :(得分:1)

有一个帮助库'json',它为每个对象添加了一个'to_json'方法。只需为此添加一个require,然后调用params.to_json。

How to convert a ruby hash object to JSON?