は、私はクラス小数点以下をJSONにシリアル化する方法は?
public class Money
{
public string Currency { get; set; }
public decimal Amount { get; set; }
}
を持っており、JSONにそれをシリアライズしたいと思います。私はので、私はJSONが最大2つの小数点以下で金額のニーズに合致しなければならないAPIの
{"Currency":"USD","Amount":100.31000}
を取得JavaScriptSerializer
を使用している場合、私は、何らかの形でJavaScriptSerializer
は10進数フィールドをシリアライズする方法を変更することが可能なはずであると感じしかし、私はどのように見つけることができません。 SimpleTypeResolverがコンストラクタに渡すことができますが、それは私が理解できる限り型でのみ動作します。 RegisterConverters(...)を使用して追加できるJavaScriptConverterは、Dictionary
のように見えます。
私はシリアライズ後
{"Currency":"USD","Amount":100.31}
を取得したいと思います。また、ダブルに変更することは問題外です。そして、おそらく丸めをする必要があります(100.311は100.31になるはずです)。
誰でもこれを行う方法を知っていますか?あなたはより詳細にシリアライズを制御できるように、JavaScriptSerializer
の代わりにおそらくありますか?
シリアライズ時にのみ数値を丸めたいですか?クラスに別のプロパティを追加し、Amountプロパティの代わりにそのプロパティをシリアル化し、元のAmountプロパティをシリアル化しないようにマークすることもできます。 –
@ MarkSherrettaはい、私はJSONにシリアル化するときにのみ丸めたいです。それを文字列にすることなく(「金額」:「100.31」)それを行うことはできますか?シリアル化のための丸められた二重のフィールド? – Halvard
私は変更を1か所だけにすることをお勧めします。私の場合は、(このオブジェクトだけでなく)直列化されているすべての小数点についてそれを行うことはOKです。 – Halvard