我正在尝试将json去序列化为数据表。我的JSON如下所示: [{ “Id”:35, “姓名”:“ABC”, “XVar”:0.078814, “YVar”:1 }, { “Id”:79, “名称”:“XYZ”, “XVar”:1.50, “YVar”:30.2 }]
我正在使用以下代码反序列化: var dataTable =(DataTable)JsonConvert.DeserializeObject(jsonString,(typeof(DataTable)));
问题是第二个对象的Y值序列化为30而不是30.2。我可以做的最简单的事情是保存数据。欢迎所有的想法。
答案 0 :(得分:2)
您面临的问题是默认情况下,用于序列化和反序列化DataTableConverter
类型的Json.Net DataTable
使用json字符串中的第一个对象来检测类型每列的值。由于第一个对象上的YVar
是一个整数,因此它假定所有其他对象在该列上也是整数。
您有两个选择:
JsonConvert.DeserializeObject(string value, Type type, params JsonConverter[] converters)