Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在.NET中反序列化JSON字符串时的小数点格式问题_C#_.net_Serialization_Deserialization - Fatal编程技术网

C# 在.NET中反序列化JSON字符串时的小数点格式问题

C# 在.NET中反序列化JSON字符串时的小数点格式问题,c#,.net,serialization,deserialization,C#,.net,Serialization,Deserialization,如果客户端使用以下.NET对象将{f:“1,00”}传递给服务器进行反序列化,则框架无法将其识别为有效的十进制值,则会出现转换错误。客户端位于“id”区域设置,因此“1,00”实际上是十进制的“1.00” 我可以告诉框架使用正确的数字格式化程序来解决我的问题吗? 谢谢 您还可以尝试此解决方案,以确保十进制被识别为特定格式 value = "1,00"; style = NumberStyles.AllowDecimalPoint; culture = CultureInfo.Crea

如果客户端使用以下.NET对象将{f:“1,00”}传递给服务器进行反序列化,则框架无法将其识别为有效的十进制值,则会出现转换错误。客户端位于“id”区域设置,因此“1,00”实际上是十进制的“1.00”

我可以告诉框架使用正确的数字格式化程序来解决我的问题吗? 谢谢


您还可以尝试此解决方案,以确保十进制被识别为特定格式

value = "1,00";
   style = NumberStyles.AllowDecimalPoint;
   culture = CultureInfo.CreateSpecificCulture("fr-FR");
   if (Decimal.TryParse(value, style, culture, out number))
   {
       decimal topaas=number;
   }

你能强迫你的客户不要通过,而只使用它吗。我认为,与不一样。您的客户如何创建字符串
{f:“1,00”}
?由于json序列化程序(JavaScriptSerializer、DataContractJsonSerializer、json.Net)将创建
{“f”:1.00}
@L.B:我们将服务器端的十进制1.00格式化为字符串“1,00”这样我们的客户就可以看到正确的区域设置兼容值。Hi COLD告诉:我如何让内置序列化机制使用您提出的解决方案?使用公共字符串Foo{get;set;}而不是公共十进制Foo{get;set;},然后它将像这样出现“1,00”;然后使用上面的示例将其转换为十进制
value = "1,00";
   style = NumberStyles.AllowDecimalPoint;
   culture = CultureInfo.CreateSpecificCulture("fr-FR");
   if (Decimal.TryParse(value, style, culture, out number))
   {
       decimal topaas=number;
   }