Ruby 获取数组的字节大小

标签 ruby arrays

我想获取 ruby​​ 中数组(项目)内容的字节大小。

我这样填充我的数组:

  @records.each do |record|
    items << { :table => table, :id => record.id, :lruos => record.updated_at }
  end

事实上,当我在JSON中序列化它时,我想强制发送这个数组的Content-Length:

respond_to do |format|
  #response['Content-Length'] = items.to_s.size
  format.json { render :json => { :success => "OK", :items => items } }
end

所以任何这样做的想法都可能很有趣。 (不知什么原因内容长度没有发送,所以想强行发送)

我使用 Rails 3.0.5。

最佳答案

如 WTP 所说,您可能打算返回 JSON 表示的大小而不是数组的 ruby​​ 表示,因为 JSON 是对浏览器的实际响应。您可以通过预先编码(产生一个字符串)然后检查其大小来完成此操作。

response['Content-Length'] = ActiveSupport::JSON.encode(items).size

More about JSON serialization and rails

关于Ruby 获取数组的字节大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9239146/

相关文章:

ruby - 安装 rb-appscript 时出错

ruby - 强制 bundle 安装使用 https ://instead of git://for GitHub-based gems

ruby-on-rails - rails 中的私有(private)协会

ruby - Mongomapper 和 Sinatra 未定义方法 `update_attributes' 为 nil :NilClass

c++ - 数组大小限制

从 c 名称排序代码转换为 NASM 汇编代码会崩溃

ruby-on-rails - 基于子域的事件管理员隐藏菜单

javascript - 从导致问题的数组中删除特定元素

java - 将 String 数组转换为 int 数组时出错

c# - 如何将长数组转换为字节数组?