This is Xamarin's bug tracking system. For product support, please use the support links listed in your Xamarin Account.
Bug 4242 - JavaScriptSerializer should use invariant culture
: JavaScriptSerializer should use invariant culture
Status: NEW
Product: Class Libraries
Classification: Mono
Component: Sys.Web
: Trunk
: PC Linux
: --- normal
: ---
Assigned To: Bugzilla
  Show dependency treegraph
Reported: 2012-04-04 18:40 EDT by Denis Lebedenko
Modified: 2015-01-05 15:09 EST (History)
3 users (show)

See Also:


Description Denis Lebedenko 2012-04-04 18:40:25 EDT
It seems that the System.Web.Script.Serialization.JavaScriptSerializer class
from the System.Web.Extensions assembly is using the current culture instead of
the invariant culture for serialization and deserialization. This leads to
incorrectly serialized floating-point numbers on cultures that use comma
instead of a point as the decimal symbol.

Mono versions: Git 5091f779533227461caef216b56ccad071bd6cab, Debian

Steps to reproduce:

[mono] /tmp/serializationtest @ cat test.cs
using System;
using System.Globalization;
using System.Threading;
using System.Web.Script.Serialization;

class Program
        static void Main()
                Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

                Thread.CurrentThread.CurrentCulture = new CultureInfo("lt-LT");

        static void Test()
                JavaScriptSerializer serializer = new JavaScriptSerializer();

                double[] array = new[] { 123.456, 0.78901 };

                string arrayJson = serializer.Serialize(array);

[mono] /tmp/serializationtest @ dmcs test.cs -r:System.Web.Extensions
[mono] /tmp/serializationtest @ mono test.exe



Expected the same output as on MS .NET:

Comment 1 mz 2012-05-23 04:30:14 EDT
JavaScriptDeserializer suffers the same problem.
Comment 2 Hari Menon 2015-01-05 15:09:42 EST
Are there any changes to the status of this bug? 

I am facing the issues mentioned in this thread when trying to deserialize
using System.Web.Script.Serialization.JavaScriptSerializer on Mono on Ubuntu.

Are there any known workarounds to make the JavaScriptSerializer
serialize/deserialize using CultureInfo.InvariantCulture ?


Note You need to log in before you can comment on or make changes to this bug.