将JSON转换为哈希

我有这个JSON,我想将其从Postman发送到Rails API:

{"object": 
 { 
    "type": "out", 
    "vars": 
    {
      "x": "x", 
      "y": "y"
    }, 
    "values": 
    {
      "ts": "timestamp", 
      "ok": 
      {
        "total": 2, 
        "min": "x", 
        "max": "y"
      }, 
      "error": 
      {
         "total": 2, 
         "error1": "first", 
         "error2": "second"
      }
    }
  }
 }

我需要将其转换为Hash模型中的,以便可以使用进行操作before_create这是我附带的:

object = self.to_json # => converts object to json
object = JSON.parse(object) # => converts json to hash

第一个问题:我明白了(id=>nil与之无关,因为它将自动插入数据库中):

 {"id"=>nil, "type"=>"out", "vars"=>{"x"=>"x", "y"=>"y"}, "values"=>{"ts"=>"timestamp", "ok"=>"{\"total\"=>2, \"min\"=>\"x\", \"max\"=>\"y\"}", "error"=>"{\"total\"=>2, \"error1\"=>\"first\", \"error2\"=>\"second\"}"}, "created_at"=>"2015-01-29T15:45:01.329Z", "updated_at"=>"2015-01-29T15:45:01.329Z"}

当我尝试操作时object["values"]["ok"],Rails发送错误:

unexpected token at '"{\"total\"=\u003e2, \"min\"=\u003e\"x\", \"max\"=\u003e\"y\"}"'

第二个问题:我只能调用object["values"],而我想用符号而不是字符串来调用它object[:values]

使用以下方法解决了我的问题:

object = self.as_json.with_indifferent_access
# => allowing me to use a symbol key instead of a string

ok_vals = object[:values][:ok].as_json.gsub(/\=\>/, ':')
# => allowing to change json string '{"val1"=>"val1", "val2"=>"val2"}' to '{"val1":"val1", "val2":"val2"}'
ok_vals = JSON.parse(ok_vals)
# => which transform json string to hash {val1: "val1", val2: "val2"}

随时对此代码提出任何建议。谢谢您的帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Golang将哈希表转换为JSON

来自分类Dev

将JSON转换为嵌套的ruby哈希

来自分类Dev

使用Ruby将JSON哈希文件转换为真实JSON

来自分类Dev

将哈希图转换为JSON字符串

来自分类Dev

将Ruby哈希转换为JSON(不包含转义字符)

来自分类Dev

将JSON数组转换为Ruby Hash(具有哈希)

来自分类Dev

Ruby将数组转换为哈希对象到JSON

来自分类Dev

将 json 哈希转换为 Rails 上的键

来自分类Dev

将哈希转换为对象

来自分类Dev

将哈希转换为数组

来自分类Dev

将哈希转换为数组

来自分类Dev

将嵌套哈希转换为单个哈希

来自分类Dev

将数组中的哈希转换为哈希中的哈希

来自分类Dev

将字符串转换为哈希

来自分类Dev

将密码哈希从SHA转换为bcrypt

来自分类Dev

Ruby将哈希数组转换为CSV

来自分类Dev

将哈希表转换为直列

来自分类Dev

将多维数组转换为哈希数组

来自分类Dev

尝试将哈希函数转换为C

来自分类Dev

将数组数组转换为哈希数组

来自分类Dev

将哈希表转换为对象列表

来自分类Dev

Rails 无法将哈希转换为整数

来自分类Dev

将字符串转换为哈希

来自分类Dev

使用深度键将哈希树转换为哈希数组

来自分类Dev

通过Logstash将哈希数组转换为简单哈希

来自分类Dev

SQL语句将jsonb哈希转换为json字符串

来自分类Dev

是否有更惯用的方式将json转换为Crystal中的特定哈希类型?

来自分类Dev

如果在JSON对象中被替换,SHA1哈希密码将转换为对象

来自分类Dev

将字符串数组转换为JSON中的哈希数组