Rails 4:将字符串字段渲染为JSON / hash

时间:2017-07-20 14:08:38

标签: ruby-on-rails ruby-on-rails-4

我有一个Rails模型,其中一个文本字段包含一个JSON字符串。在使用JSON格式(例如通过索引或显示)的视图中呈现它时,我想将字符串转换为JSON哈希。我怎么能用jbuilder或其他方式做到这一点?

一般情况下,如何通过调用某个函数在字段上应用变换,然后再通过jbuilder进行渲染。

当然,天真的解决方案是手动构建JSON并使用render json: my_json_here,但我正在寻找更好的方法。

2 个答案:

答案 0 :(得分:1)

JSON已经是一个字符串......也许你想把它转换回一个对象......

这会将您的字符串转换为散列或数组对象。

JSON.parse(string)

如果您想要反过来,请将哈希或数组转换为JSON字符串:

{ foo: 'bar' }.to_json # "{\"foo\":\"bar\"}"

编辑:当您正在寻找更高级的东西时,我建议使用gem ActiveModelSerializer,您可以在其中创建序列化器对象,可用于将ActiveModel数据呈现为任何格式,如JSON。

答案 1 :(得分:0)

我认为您可以使用"serialization"执行此操作,其中所有从JSON对象到字符串和返回的转换都由ruby处理。 apidock