Ho una classeSerializzare un decimale in JSON, come arrotondare?
public class Money
{
public string Currency { get; set; }
public decimal Amount { get; set; }
}
e vorrebbe serializzare a JSON. Se uso il JavaScriptSerializer
ottengo
{"Currency":"USD","Amount":100.31000}
A causa della API devo conformarsi alle esigenze JSON ammonta con un massimo di due cifre decimali, ritengo che dovrebbe essere possibile modificare in qualche modo il modo in cui il JavaScriptSerializer
serializza un campo decimale, ma non riesco a scoprire come. C'è lo SimpleTypeResolver che puoi passare nel costruttore, ma funziona solo sui tipi per quanto posso capire. È possibile creare JavaScriptConverter, che è possibile aggiungere tramite RegisterConverters (...) per Dictionary
.
vorrei ottenere
{"Currency":"USD","Amount":100.31}
dopo ho serializzare. Inoltre, il passaggio al doppio è fuori questione. E probabilmente ho bisogno di fare qualche arrotondamento (100.311 dovrebbe diventare 100.31).
Qualcuno sa come fare? C'è forse un'alternativa allo JavaScriptSerializer
che ti permette di controllare la serializzazione in modo più dettagliato?
Si desidera arrotondare l'importo solo durante la serializzazione? È possibile aggiungere un'altra proprietà alla classe e serializzarla anziché la proprietà Amount e contrassegnare la proprietà Amount originale per non essere serializzata. –
@MarkSherretta Sì, voglio solo arrotondare durante la serializzazione su JSON. Posso farlo senza trasformarlo in una stringa ("Amount": "100.31")? Un doppio campo arrotondato per la serializzazione? – Halvard
Preferibilmente il cambiamento dovrebbe essere in un solo posto. Nel mio caso è OK farlo per tutti i decimali che vengono serializzati (non solo in questo oggetto). – Halvard