【发布时间】:2025-12-08 09:15:01
【问题描述】:
response = Typhoeus::Request.get("http://localhost:3000/api/api_email/#{@api_id}.json")
JSON.parse(response.body)
响应是一个 JSON 对象,但在尝试解析它时出现错误。
undefined method `bytesize' for
我想访问 JSON 对象。
错误:
NoMethodError at /api/v1/a71040739d6cc50e89aff56601af67/2011-10-1
undefined method `bytesize' for {"xpto"=>{"email
"=>"test@gmail.com"}}:Hash
file: utils.rb location: bytesize line: 239
回溯:
/Users/donald/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/webrick/httpserver.rb in service
si.service(req, res)
/Users/donald/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/webrick/httpserver.rb in run
server.service(req, res)
/Users/donald/.rvm/rubies/ruby-1.9.2-rc2/lib/ruby/1.9.1/webrick/server.rb in block in start_thread
block ? block.call(sock) : run(sock)
这是如何生成的:
@api_id = params[:api_id]
@bucket = Bucket.where(:api => @api_id)
respond_with(@bucket, :only => [:email])
返回的 .json 文件包含:
[{"xpto":{"email":"test@gmail.com"}}]
【问题讨论】:
-
如果您显示您正在生成/接收的 JSON,这将有所帮助,至少引用
bytesize的部分。此外,示例的格式很难阅读。请尽量保留控制台上显示的输出。 -
.json 文件有:[{"xpto":{"email":"test@gmail.com"}}]
-
另外,请重新编辑您的问题并在此处添加信息,而不是在整个页面中穿插在 cmets 中。它确实有助于将所有相关信息保存在一个地方。