相关疑难解决方法(0)

如何将Ruby对象转换为JSON

我想做这样的事情:

require 'json'

class Person
attr_accessor :fname, :lname
end

p = Person.new
p.fname = "Mike"
p.lname = "Smith"

p.to_json
Run Code Online (Sandbox Code Playgroud)

可能吗?

ruby json ruby-on-rails

30
推荐指数
3
解决办法
4万
查看次数

什么时候在Ruby的JSON库中使用dump vs. generate vs. to_json和load与parse?

david4dev对这个问题的回答声称有三种等效方法可以使用该json库将对象转换为JSON字符串:

JSON.dump(object)
JSON.generate(object)
object.to_json
Run Code Online (Sandbox Code Playgroud)

以及两种将JSON字符串转换为对象的等效方法:

JSON.load(string)
JSON.parse(string)
Run Code Online (Sandbox Code Playgroud)

但是看一下源代码,它们中的每一个似乎都差别很大,并且它们之间存在一些差异(例如,1).

他们之间有什么不同?什么时候用哪个?

ruby json

9
推荐指数
1
解决办法
2258
查看次数

在to_json方法中Rails"错误的参数数量(1表示0)"

可能重复:
在Rails 2.3.5中覆盖to_json

LIB/responses.rb

module Responses
class Response
    def to_json
       JSON.pretty_generate(self)
    end
end

class ErrorResponse < Response
    def initialize(cause)
        self[:type]="Error"
        self[:casue]=cause

    end
end
class DataResponse < Response
    attr_accessor :data

end
end
Run Code Online (Sandbox Code Playgroud)

这由控制器使用:

 response=Responses::DataResponse.new
 response.data=someData

 render :json => response
Run Code Online (Sandbox Code Playgroud)

现在,我得到一个错误wrong number of arguments (1 for 0)lib/responses.rb:3:in to_json.为什么?没有参数传递给to_json隐式调用的render :json.那我的错误在哪里?

ruby json ruby-on-rails

4
推荐指数
1
解决办法
6542
查看次数

标签 统计

json ×3

ruby ×3

ruby-on-rails ×2