2011-05-26 61 views
1

我使用json.net来序列化和反序列化一个对象。唯一的问题是,当我尝试反序列化对象时,它无法解析它刚刚创建的double值。序列化时,它使得十进制字符.,但是当它试图反序列化时,它期望,JsonConvert本地化的数字在json.net中的小数点

这里的问题可能是我在设备上的应用程序中运行反序列化。该设备可能被设置为与创建JSON的服务器不同的本地化。

那么是否有可能强制json.net反序列化double.作为十进制字符,无论本地化的格式可能是什么?

编辑在json.net codeplex中有一个错误,但它恰恰相反。我试过,转换从double我喜欢的类型做decimal,而现在它的作品完美...

EDIT2:

class Spot 
{ 
    int Id; 
    string Name; 
    double Distance; 
    double Rating; 
} 

我猜默认文化是制度文化,对不对?这将是挪威(nb-NO

Here's the output.正如你所看到的,我送客栈双打,的经纬度值,这被解析为在服务double

+0

你可以发布该类,你是如何反序列化/序列化和你的应用程序运行在什么文化?这听起来像一个需要修复的错误。 – 2011-05-26 21:16:32

+0

@James Newton-King:我用一些代码示例更新了我的问题。 – peirix 2011-05-27 07:51:27

回答

-1

听起来这可能是Json.NET中的一个错误。

根据JSON spec(参见第2.4节),小数点分隔符应始终为.。尽管如此,我有可能 - 我不知道 - Json.NET可能允许您覆盖试图反序列化时使用的文化。

+0

非答案的种类 – 2017-09-21 11:56:48