如何在Ruby中将流转换为对象

问题描述 投票:0回答:1

我正在尝试从jQuery文件发出PUT提取请求。该服务器给了我500,因为我的控制器无法使用提取功能。这是以request.body形式发送到我的.rb文件的流:

request.body == #<StringIO:0x00005597c3b69fa8>
request.body.string == "{\"name\":\"New School\",\"office_id\":2,\"inactive\":false}"

我已经尝试过..

load(request.body.string)

但是这会返回加载错误:

LoadError: cannot load such file -- {"name":"New School","office_id":2,"inactive":false}

也..

parse(request.body.string)

这导致

undefined method `parse' for #<CrEventsApp:0x00005597c3bbf098>

是否存在将这些信息解析回哈希的方法?我可以使用一些正则表达式和.split()自己解析该字符串,以将数据转换为可用的格式,但是我想要一个更简洁,更健壮的解决方案。

json ruby sinatra
1个回答
0
投票

JSON.parse应该可以解决:

JSON.parse(request.body.string)
=> {"name"=>"New School", "office_id"=>2, "inactive"=>false}
© www.soinside.com 2019 - 2024. All rights reserved.