2

我正在尝试将 ruby​​ 哈希渲染为 haml 中的 json 字符串。(!告诉haml不要逃避输出)

! { :name => "Paul" }.as_json 

我期待这个输出

{ "name":"Paul" }

但我得到的是哈希火箭而不是冒号

{ "name"=>"Paul" }

如何as_json为属性/值分隔符制作 haml 或输出冒号而不是哈希火箭?

4

1 回答 1

7

as_json本质上是一种允许您指定对象如何在 JSON 中表示的方法。它实际上并没有返回 JSON 编码的字符串。to_json为此需要。

这样做的原因是,您可能想要决定在 JSON 编码时模型返回哪些字段(例如,从 User 模型中删除密码),但是通过使用to_json,您不再能够将其嵌套在另一个 JSON 对象中,因为它已成为编码和转义的字符串。

to_json将调用as_json,并对返回值进行编码。

引用自:http: //jonathanjulian.com/2010/04/rails-to_json-or-as_json/

于 2012-06-30T16:45:05.597 回答