小编Kei*_*ows的帖子

Newtonsoft JSON- 与 DataSet 之间的转换会导致 Decimal 变为 Double?

我正在使用 Newtonsoft JSON 使用下面的代码将 DataSet 序列化为二进制 JSON。当反序列化回 DataSet 时,字段类型从 Decimal 更改为 Double?有人知道出了什么问题吗?

示例代码:

static void Main(string[] args)
{
  var ds = new DataSet();
  var dt = ds.Tables.Add();
  dt.Columns.Add("Test", typeof(Decimal));
  dt.Rows.Add(new object[] { 1.23345M });

  var data = DataSetToBinJSON(ds);

  var ds2 = BinJSONToDataSet(data);
  Console.WriteLine((ds2.Tables[0].Columns[0].DataType == typeof(Decimal)) ? "Passed" : string.Format("Failed- {0}", ds2.Tables[0].Columns[0].DataType));
  Console.ReadLine();
}



/// <summary>
/// Utility function to create an optimized Binary JSON version of a DataSet
/// </summary>
public static byte[] DataSetToBinJSON(DataSet dataSet)
{
  if (dataSet == null …
Run Code Online (Sandbox Code Playgroud)

.net c# json.net

5
推荐指数
1
解决办法
7071
查看次数

标签 统计

.net ×1

c# ×1

json.net ×1