2011-05-26 65 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