2014-06-27 86 views
0

我正在使用JsonConvert和JsonSerializerSettings從JSON讀取數據,但我沒有觸及文化。將手機操作系統語言從en-US更改爲nl-NL,我失去了我的NumberFormat。是否可以設置應用程序的NumberFormat?在應用程序級別指定NumberFormat

using (Stream stream = accessStream.AsStreamForRead((int)accessStream.Size)) 
        { 
         byte[] content = new byte[stream.Length]; 
         await stream.ReadAsync(content, 0, (int)stream.Length); 

         string json = Encoding.UTF8.GetString(content, 0, content.Length); 

         System.Diagnostics.Debug.WriteLine("Read from file: " + json); 

         JsonSerializerSettings serializerSettings = new JsonSerializerSettings(); 
         serializerSettings.NullValueHandling = NullValueHandling.Ignore; 
         List<T> objects = JsonConvert.DeserializeObject<List<T>>(json, serializerSettings); 

         return objects; 
        } 

回答

0

你可以試試這個:

Thread.CurrentThread.CurrentUICulture.NumberFormat = new NumberFormatInfo(); // Sets the CurrenUiCulture number format to the default culture neutral format 

在ASP.NET配置文件中,你可以使用同樣的下一個section改變它。那麼,它不會幫助,如果它不是asp.net應用程序。

有一個difference between current culture and uiculture - CurrentUiCulture負責格式化和其他功能,而CurrentCulture處理語言和資源。

但是你應該知道這段代碼會改變你的整個主線程在應用程序中的數字格式。它不會影響另一個線程中的數字格式。

OFF-TOPIC SUGGESTION? :

如果你只需要改變的JSON序列化,反序列化那麼你應該使用的JsonSerializerSettings

JsonSerializerSettings serializerSettings = new JsonSerializerSettings() {Culture = CultureInfo.InvariantCulture }; 
+0

我使用JSON到底Culture財產,沒有理由堅持XML。 – Boris

相關問題