[Mono-bugs] [Bug 660705] New: JsonValue.ToString() incorrectly escapes strings with pairs of quotes embedded.

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Mon Dec 20 20:56:02 EST 2010


https://bugzilla.novell.com/show_bug.cgi?id=660705

https://bugzilla.novell.com/show_bug.cgi?id=660705#c0


           Summary: JsonValue.ToString() incorrectly escapes strings with
                    pairs of quotes embedded.
    Classification: Mono
           Product: Mono: Class Libraries
           Version: unspecified
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Major
          Priority: P5 - None
         Component: System
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: enagel at nageltech.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US)
AppleWebKit/534.10 (KHTML, like Gecko) Chrome/8.0.552.224 Safari/534.10

JsonValue.ToString() doesn't add a backslash to the second quote when two
quotes are next to each other in a string literal.

Reproducible: Always

Steps to Reproduce:
Run the following test code:

            try
            {
                JsonObject json1 = new JsonObject();
                json1["Val"] = "Empty quotes (\"\") are evil!";

                string str = json1.ToString();

                Console.WriteLine("str = {0}", str);

                JsonValue json2 = JsonValue.Parse(str);    // crash

                Console.WriteLine("Test passed!");
            }
            catch(Exception ex)
            {
                Console.WriteLine("{0}({1})", ex.GetType().Name, ex.Message);
                Console.WriteLine("{0}", ex.StackTrace);
            }

Actual Results:  
str = {"Val": "Empty quotes (\"") are evil!"}
ArgumentException(Invalid JSON string literal format. At line 1, column 28)
  at System.Json.JsonReader.ReadStringLiteral () [0x0000d] in
/Developer/MonoTouch/Source/mono/mcs/class/System.Json/System.Json/JsonReader.cs:247 
  at System.Json.JsonReader.ReadCore () [0x00114] in
/Developer/MonoTouch/Source/mono/mcs/class/System.Json/System.Json/JsonReader.cs:70 
  at System.Json.JsonReader.Read () [0x00000] in
/Developer/MonoTouch/Source/mono/mcs/class/System.Json/System.Json/JsonReader.cs:26 
  at System.Json.JsonValue.Load (System.IO.TextReader textReader) [0x00011] in
/Developer/MonoTouch/Source/mono/mcs/class/System.Json/System.Json/JsonValue.cs:25 
  at System.Json.JsonValue.Parse (System.String jsonString) [0x00011] in
/Developer/MonoTouch/Source/mono/mcs/class/System.Json/System.Json/JsonValue.cs:32 


Expected Results:  
The system should be able to correctly encode embedded escapes.  While the
exception happens when deserializing here, the bug is caused because it wasn't
serialized successfully in the first place (see the first line of "Actual
Results")

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the mono-bugs mailing list