从rails app发送嵌套的JSON到hapijs应用程序

时间:2017-12-04 08:38:51

标签: javascript ruby-on-rails json node.js ruby-on-rails-3

我使用的是rails 3.4,node 9和Hapi js 16.5.2
我想做的是将一个嵌套的JSON从rails应用程序发送到hapi js应用程序,但是发生了一些奇怪的事情。我正在使用Rest-Client请求发送POST请求。 JSON具有以下格式:

data = {
    time => {
        start => "12.11.17",
        end => "13.11.17"
    },
    event => "party"
}

请求的格式如下:

RestClient::Request.new(
    :method => :post,
    :url => "mynodeserverroute",
    :payload => data
).execute

问题是所有嵌套元素的发送都非常奇怪,而不是形式:

time: {
        start: "12.11.17",
        end: "13.11.17"
    }

它以

的形式出现
"time[start]": "12.11.17", 
"time[end]": "13.11.17"

这使得以后验证具有挑战性。 我究竟做错了什么?我尝试在请求中添加以下内容:

:header => {
            :content_type => :json, 
            :accept => :json
}

但这也没有帮助。 是否有通过rails发送JSON的不同方法?

1 个答案:

答案 0 :(得分:0)

数据看起来很奇怪。它应该看起来像:

"time":{"start":"12.11.17","end":"13.11.17"}

我不知道你的设置。 但我会从控制器中的简单rails内置respond_to做起,并使用相应的路由。之后实现RestClient :: Request。

例如:

#routes.rb
...
get '/this-url-is-for-seeing-the-data' => 'controller_name#post_this'
...

然后在控制器中:

def post_this
  respond_to to |format|
    format.json { render json: { time: { start: "12.11.17", end: "13.11.17" } } }
  end 
end  

您现在可以访问网址:/this-url-is-for-seeing-the-data.json并在浏览器中查看数据。

现在你知道它是对的,你可以建立其余的,我希望:)

祝你好运!