我正在rails中构建一个json对象,如下所示:
@list = Array.new
@list << {
:created_at => item.created_at
}
end
@list.to_json
问题是浏览器收到的是这样的:
"created_at":"2000-01-01T01:31:35Z"
这显然是不对的,在DB中它有:
2011-06-17 01:31:35.057551
为什么会发生这种情况?有什么方法可以确保它正确地进入浏览器?
感谢
您需要进行一些测试/调试,以了解日期的进展情况。对我来说,在Rails控制台(Rails 3.0.9,Ruby 1.9.2)
ruby-1.9.2-p180 :014 > d = Date.parse("2011-06-17 01:31:35.057551")
=> Fri, 17 Jun 2011
ruby-1.9.2-p180 :015 > @list = {:created_at => d}
=> {:created_at=>Fri, 17 Jun 2011}
ruby-1.9.2-p180 :016 > @list.to_json
=> "{"created_at":"2011-06-17"}"
也就是说,一切都很好。你能看看日期是否真的合适吗?
问题在于to_json
转义字符的方式。这里有一篇关于这个主题的非常好的帖子:
轨道to_json或as_json
您可能需要研究重写as_json。