Ruby:接收并打印JSON对象

| 我想使用Ruby接收JSON对象。我写了这个:
require \'sinatra\'
require \'json\'

post \'/\' do
  push = JSON.parse(params[:payload])
  \"I got some JSON: #{push.inspect}\"
end
我正在发送:
var options = {
                  host: \'localhost\',
                  port: 4567,
                  path: \'/\',
                  method: \'POST\'
                };

var myFirstJSON = { \"payload\" : { \"headers\" : 
                                            [{ \"from\" : from,
                                                \"to\"  : to,
                                                \"subject\" : subject }],
                                \"body\"    : 
                                            [{ \"primeira_parte\" : primeira_parte,
                                                \"segunda_parte\" : segunda_parte,
                                                \"terceira_parte\": terceira_parte }]
                                }};
            req.write(JSON.stringify(myFirstJSON));
但是,我收到此错误:
TypeError - can\'t convert nil into String:


{\"{\\\"payload\\\":{\\\"headers\\\":\"=>{\"{\\\"from\\\":\\\"test@test.com\\\",\\\"to\\\":\\\"test@test.com\\\",\\\"subject\\\":\\\"Testing\\\"}\"=>{\",\\\"body\\\":\"=>{\"{\\\"primeira_parte\\\":\\\"The following message to <test@test.com> was undeliverable.\\\\r\\\\nThe reason for the problem:\\\\r\\\\n5.1.0 - Unknown address error 553-\'sorry, this recipient is not in my valid\"=>\"\\\\r\\\\nrcptto list (#5.7.1)\'\\\",\\\"segunda_parte\\\":\\\"Final-Recipient: rfc822\"}}}, \"test@test.com\\\\r\\\\nAction: failed\\\\r\\\\nStatus: 5.0.0 (permanent failure)\\\\r\\\\nRemote-MTA: dns\"=>nil, \"216.75.35.163\"=>{\"\\\\r\\\\nDiagnostic-Code: smtp\"=>nil}, \"5.1.0 - Unknown address error 553-\'sorry, this recipient is not in my validrcptto list (#5.7.1)\' (delivery attempts: 0)\\\",\\\"terceira_parte\\\":\\\"Received: from unknown (HELO aws-bacon-delivery-svc-iad-1020.vdc.amazon.com) (\"=>{\"10.144.21.123\"=>{\")\\\\r\\\\n  by na-mm-outgoing-6102-bacon.iad6.amazon.com with ESMTP\"=>nil}}, \"16 Apr 2011 14:11:15  0000\\\\r\\\\nReturn-Path: 0000012f5eb1cab3-09564031-57ef-4136-8cd7-9f368c5acd7d-000000@email-bounces.amazonses.com\\\\r\\\\nDate: Sat, 16 Apr 2011 14:23:20  0000\\\\r\\\\nFrom: tiago@tiagop.org\\\\r\\\\nTo: test@test.com\\\\r\\\\nMessage-ID: <0000012f5eb1cab3-09564031-57ef-4136-8cd7-9f368c5acd7d-000000@email.amazonses.com>\\\\r\\\\nSubject: Testing\\\\r\\\\nMime-Version: 1.0\\\\r\\\\nContent-Type: text/plain\"=>nil, \"\\\\r\\\\n charset\"=>\"UTF-8\\\\r\\\\nContent-Transfer-Encoding: 7bit\\\\r\\\\nX-AWS-Outgoing: 199.255.192.79\\\\r\\\\n\\\\r\\\\n<html><body><p> Helllooo </p></body></html>\\\\r\\\\n\\\\r\\\\n\\\"}]}}\"}
    
已邀请:
您想要的是这样的路线:
post \'/\' do
  push = JSON.parse(request.body.read)
  \"I got JSON: #{push.inspect}\"
end
您不是对数据进行表单编码,因此不会在参数中进行设置。     

要回复问题请先登录注册