【问题标题】:How to convert a stream into an object in Ruby如何在 Ruby 中将流转换为对象
【发布时间】:2020-02-05 07:21:51
【问题描述】:

我正在尝试从我的 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】:

    JSON.parse 应该可以解决问题:

    JSON.parse(request.body.string)
    => {"name"=>"New School", "office_id"=>2, "inactive"=>false}
    

    【讨论】:

    • 哦,哇,这完全奏效了。以我移植它的方式将我的对象归还给我。感谢您清除它!
    猜你喜欢
    • 2011-03-14
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 2013-02-28
    • 2011-03-12
    • 2011-10-03
    相关资源
    最近更新 更多