在应用级别指定 NumberFormat
Posted
技术标签:
【中文标题】在应用级别指定 NumberFormat【英文标题】:Specify NumberFormat at app level 【发布时间】:2014-06-27 12:50:49 【问题描述】:我正在使用 JsonConvert 和 JsonSerializerSettings 从 JSON 读取数据,我还没有接触过文化。将手机操作系统语言从 en-US 更改为 nl-NL 我丢失了 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;
【问题讨论】:
【参考方案1】:你可以试试这个:
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 负责语言和资源。
但你应该知道,这个 sn-p 会改变应用程序中整个主线程的数字格式。并且不会影响其他线程中的数字格式。
离题建议? :
如果您只需要更改Json 序列化-反序列化,那么您应该使用JsonSerializerSettings
的Culture 属性
JsonSerializerSettings serializerSettings = new JsonSerializerSettings() Culture = CultureInfo.InvariantCulture ;
【讨论】:
我最后用的是JSON,没理由坚持XML。以上是关于在应用级别指定 NumberFormat的主要内容,如果未能解决你的问题,请参考以下文章
使用 MKUserTrackingBarButtonItem 时如何指定缩放级别?