2017-09-13 4 views
2

Ich habe einige Klassen, die über HTTP an eine API gesendet werden, und ich muss mit allen Eigenschaften (einschließlich Nils) nach Json exportiert werden.Objekt to_json mit allen Eigenschaften

Ich habe eine Klasse wie folgt aus:

class Customer 

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

    def initialize @token 
    end 
end 

Wenn ich eine Instanz von Kunden und Export erstellen, um JSon ich unerwartetes Ergebnis abrufen.

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"} 

Wie to_json Funktion zu zwingen, völlig porperties Klasse zu exportieren?

Antwort

4

Verwendung 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"} 
Verwandte Themen