Mongoid ObjectID未在to_json生成的JSON中进行转义

时间:2013-07-02 15:46:26

标签: ruby-on-rails mongoid

在包含mongoid对象ID的Hash或Array上使用to_json时,ID不会在JSON中转义。我必须把它作为一个字符串。 因此,每次我将序列化包含ObjectID的哈希或数组时,生成的JSON都会格式错误。

我正在使用带有Rails 4的Mongoid 4 master。

[26] pry(main)> [Moped::BSON::ObjectId.new].to_json
=> "[51d2f368d0068664e0000002]"

[27] pry(main)> [Moped::BSON::ObjectId.new.to_s].to_json
=> "[\"51d2f425d0068664e0000003\"]"

1 个答案:

答案 0 :(得分:2)

似乎在Master Branch上已经解决了

[Moped::BSON::ObjectId.new].to_json
=> "[{\"$oid\":\"51d2ff0322cf02e1a5000001\"}]"

MongoDB中的ObjectId不仅仅是一个String。因此,在此之前将其转换为字符串可能是明智之举。