JSON对象转换为rails对象
JSON object to a rails object
我在html视图中使用JSON.stringfy(object(创建了一个JSON对象,该对象输出以下JSON对象
{
"0X1W6": "{'"type'":'"Hourly'",'"hr'":'"12'",'"min'":'"30'",'"every_hr'":'"5'"}",
"Tk18f": "{'"type'":'"Daily'",'"hr'":'"12'",'"min'":'"30'",'"days_checked'":[1,4]}"
}
我如何将其转换为一个ruby对象,它看起来像这样:
[
{ :type => 'Hourly', :hr => 12, :min => 30, :every_hr => 5}
{ :type => 'Daily', :hr => 12, :min => 30, :days_checked => [1,4]}
]
result = []
z = ActiveSupport::JSON.decode( '{
"0X1W6": "{'"type'":'"Hourly'",'"hr'":'"12'",'"min'":'"30'",'"every_hr'":'"5'"}",
"Tk18f": "{'"type'":'"Daily'",'"hr'":'"12'",'"min'":'"30'",'"days_checked'":[1,4]}"
}')
z.each_value do|i|
x = {}
ActiveSupport::JSON.decode(i).each{|k,v|
x[k.to_sym] = (v.class == String && v.to_i.to_s == v) ? v.to_i : v
}
result << x
end
{
"0X1W6": "{'"type'":'"Hourly'",'"hr'":'"12'",'"min'":'"30'",'"every_hr'":'"5'"}",
"Tk18f": "{'"type'":'"Daily'",'"hr'":'"12'",'"min'":'"30'",'"days_checked'":[1,4]}"
}.to_json
我假设您正在将JSON从JavaScript传递到服务器。在服务器上,您可以使用"json"gem来解析json,如:o = JSON.parse json_string
。
如果您确实需要组合数据结构(删除键0X1W6和Tk18f(,则必须将您的ruby哈希后处理到一个数组中。使用相同的技术,可以将字符串键转换为符号。
如果我理解正确,您有JSON,并且想要一个ruby哈希。在rails中,这可以通过ActiveSupport::Json.decode(Json(来完成,而"Json"是一个字符串。但这不会给你你正在寻找的确切结果,你还必须做:
ActiveSupport::Json.decode(json).values.symbolize_keys
我希望这能有所帮助。
相关文章:
- Rails将JavaScript对象存储到Model的有效方式
- Rails 'nil' 不是与 ActiveModel 兼容的对象.它必须实现:to_partial_path.阿贾克斯
- Rails的问题,haml + javascript在字段对象的模糊
- 如何使用rails 3.1.4中的FormBuilder.new构建表单生成器对象
- Rails使用ajax调用更新多态对象的表部分
- Rails:如何将JS对象转换为数组参数
- Rails结构到JSON对象
- 访问Javascript中的Rails子对象
- 对象不支持此属性或方法 Rails Windows 64 位
- 一个 rails 字段,它是 JSON 对象的数组
- Rails JavaScript 包含 TypeError:“null”不是一个对象(评估 'document.
- “未定义”使用 Rails 对象传递数据属性
- Rails:如何使用 JavaScript 滑块显示 ActiveRecord 对象
- Rails:为什么我的ajax创建的对象不能用于触发javascript
- Rails 视图中的 Json 对象
- Rails:查看javascript对象'浏览器中的s属性's控制台
- rails在javascript url中添加对象
- 使用jquery检查rails对象
- 如何在javascript中访问当前rails对象id
- 如何使用rails对象在选择下拉列表中设置选项的值's的id