是否有内置的Ruby方法将查询字符串直接转换为JSON对象?

时间:2014-03-13 13:38:25

标签: ruby-on-rails ruby json

如果我有一个字符串:

"TimeStamp=1320947201017&enumber=34646"

希望这是JSON:

{ "TimeStamp" : "1320947201017", "enumber" : "34646" }

在Ruby中是否有内置的方法来实现这一目标?

2 个答案:

答案 0 :(得分:7)

执行以下操作:

require 'uri'
require 'json'

Hash[URI.decode_www_form("TimeStamp=1320947201017&enumber=34646")].to_json
# => "{\"TimeStamp\":\"1320947201017\",\"enumber\":\"34646\"}"

文档 - decode_www_formGenerating JSON

答案 1 :(得分:4)

将其转换为哈希值,然后使用rails的内置方法将哈希值转换为json。

require 'rack/utils'
#=> []
paramstring = "TimeStamp=1320947201017&enumber=34646"
#=> "TimeStamp=1320947201017&enumber=34646"
hash = Rack::Utils.parse_nested_query(paramstring)
#=> {"TimeStamp"=>"1320947201017", "enumber"=>"34646"}
hash.to_json    
#=> "{\"TimeStamp\":\"1320947201017\",\"enumber\":\"34646\"}"