Ruby获取数组的字节大小

ale*_*our 10 ruby arrays

我想获得ruby中数组(项)内容的大小(以字节为单位).

我这样填充我的数组:

  @records.each do |record|
    items << { :table => table, :id => record.id, :lruos => record.updated_at }
  end
Run Code Online (Sandbox Code Playgroud)

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

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

因此,任何想法都可能很有趣.(因为我不知道内容长度没有发送,所以我想强迫它)

我使用Rails 3.0.5.

She*_* Yu 7

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

response['Content-Length'] = ActiveSupport::JSON.encode(items).size
Run Code Online (Sandbox Code Playgroud)

有关JSON序列化和rails的更多信息


Nin*_*ete 5

或者,您也可以通过 执行此操作item.to_json.bytesize。这将为您提供正在发送的 JSON 字符串的大小。