我正在测试我正在处理的购物车的 Json.NET 序列化,并注意到当我序列化 -> 反序列化 -> 再次序列化时,我发现某些decimal字段的尾随零格式有所不同。这是序列化代码:
private static void TestRoundTripCartSerialization(Cart cart)
{
string cartJson = JsonConvert.SerializeObject(cart, Formatting.Indented);
Console.WriteLine(cartJson);
Cart cartClone = JsonConvert.DeserializeObject<Cart>(cartJson);
string cloneJson = JsonConvert.SerializeObject(cartClone, Formatting.Indented);
Console.WriteLine(cloneJson);
Console.WriteLine("\r\n Serialized carts are " + (cartJson == cloneJson ? "" : "not") + " identical");
}
Run Code Online (Sandbox Code Playgroud)
的Cart器具IEnumerable<T>,并且具有JsonObjectAttribute允许其序列作为对象,包括其属性以及其内部列表。的decimal属性Cart不会改变,但是decimal内部列表/数组中的对象及其内部对象的某些属性会像上面代码输出的摘录一样:
第一次序列化:
...
"Total": 27.0000,
"PaymentPlan": {
"TaxRate": 8.00000,
"ManualDiscountApplied": 0.0,
"AdditionalCashDiscountApplied": 0.0,
"PreTaxDeposit": 25.0000,
"PreTaxBalance": 0.0,
"DepositTax": 2.00,
"BalanceTax": …Run Code Online (Sandbox Code Playgroud)