我在 Redis 中存储了一些数据,当我检索这些数据时,我在解析它时遇到了问题。
当我运行这个时:
$redis.get("data")
我得到这个:"[{\"login\"=>\"name\",\"id\"=>1574 }]"
当我尝试对返回正文使用 JSON.parse 时,出现此错误:
JSON::ParserError: 409: '{"login"=>"name", "id"=>1574}]' 处出现意外 token
我做错了什么?
最佳答案
您需要先将 ruby 对象序列化为 JSON,然后再将其存储到 redis 中。
在这种情况下,您需要调用 $redis.set('data', JSON.dump(data))
而不是当前正在调用的内容,即 $redis。设置('data',data.to_s)
。 .to_s
会在传入 redis 的 set
方法的任何对象上被调用。
如果您确实需要解析已经存储的数据,那么您可以使用 ruby 的 eval
,尽管您不应该在生产中使用它!
$ data = eval($redis.get('data'))
=> [{"login"=>"name", "id"=>1574}]
$ $redis.set('data', JSON.dump(data))
关于ruby - JSON 解析 Redis.get 返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57698512/