2017-09-13 70 views
2

我有一些類通過HTTP發送到API,我需要導出到與所有屬性(包括nils)的JSON。對象to_json與所有屬性

我有這樣一個類:

class Customer 

    JSON.mapping(
    id: UInt32 | Nil, 
    name: String | Nil, 
    email: String | Nil, 
    token: String 
) 

    def initialize @token 
    end 
end 

當我創建的客戶和出口實例JSON我找回意想不到的結果。

c = Customer.new "FULANITO_DE_COPAS" 
puts c.to_json 

# Outputs 
{"token":"FULANITO_DE_COPAS"} 

# I expect 
{"id":null,"name":null,"email":null,"token":"FULANITO_DE_COPAS"} 

如何強制to_json功能完全出口調性質類?

回答

4

使用emit_null

class Customer 

    JSON.mapping(
    id: {type: UInt32?, emit_null: true}, 
    name: {type: String?, emit_null: true}, 
    email: {type: String?, emit_null: true}, 
    token: String 
) 

    def initialize(@token) 
    end 
end 

c = Customer.new "FULANITO_DE_COPAS" 
c.to_json #=> {"id":null,"name":null,"email":null,"token":"FULANITO_DE_COPAS"}