Forráskód Böngészése

2009-03-06 Marek Habersack <[email protected]>

	* JsonDeserializer.cs: unquoted key values must ignore leading
	and trailing whitespace

2009-03-06  Marek Habersack  <[email protected]>

	* JavaScriptSerializerTest.cs: added a test for unquoted tests
	surrounded with spaces.

svn path=/trunk/mcs/; revision=128801
Marek Habersack 17 éve
szülő
commit
1dfc535d36

+ 5 - 0
mcs/class/System.Web.Extensions/System.Web.Script.Serialization/ChangeLog

@@ -1,3 +1,8 @@
+2009-03-06  Marek Habersack  <[email protected]>
+
+	* JsonDeserializer.cs: unquoted key values must ignore leading
+	and trailing whitespace
+
 2008-12-05  Marek Habersack  <[email protected]>
 
 	* JsonSerializer.cs: StringBuilder extension methods aren't used

+ 2 - 2
mcs/class/System.Web.Extensions/System.Web.Script.Serialization/JsonDeserializer.cs

@@ -277,8 +277,8 @@ namespace System.Web.Script.Serialization
 			/*null     N3*/ {__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,OK,__,__,__,__,__,__,__,__,__,__,__,__,__},
 			/*_.       FX*/ {OK,OK,__,OE,__,AE,__,CM,__,__,__,__,__,__,FR,FR,__,__,__,__,E1,__,__,__,__,__,__,__,__,E1,__,__,__,__,__,__},
 			/*inval.   IV*/ {__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__},
-			/*unq.key  UK*/ {__,UI,__,__,__,__,UE,__,__,__,__,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,__,UK,UK,UK,UK},
-			/*unq.ign. UI*/ {__,UI,__,__,__,__,UE,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__},
+			/*unq.key  UK*/ {UI,UI,__,__,__,__,UE,__,__,__,__,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,UK,__,UK,UK,UK,UK},
+			/*unq.ign. UI*/ {UI,UI,__,__,__,__,UE,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__},
 			/*i1       I1*/ {__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,I2,__,__,__,__,__,__,__,__,__,__,__,__},
 			/*i2       I2*/ {__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,I3,__,__,__,__,__,__,__,__,__,__,__,__,__,__},
 			/*i3       I3*/ {__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,I4,__,__},

+ 5 - 0
mcs/class/System.Web.Extensions/Test/System.Web.Script.Serialization/ChangeLog

@@ -1,3 +1,8 @@
+2009-03-06  Marek Habersack  <[email protected]>
+
+	* JavaScriptSerializerTest.cs: added a test for unquoted tests
+	surrounded with spaces.
+
 2008-10-22  Marek Habersack  <[email protected]>
 
 	* JavaScriptSerializerTest.cs: added tests for deserialization of

+ 15 - 1
mcs/class/System.Web.Extensions/Test/System.Web.Script.Serialization/JavaScriptSerializerTest.cs

@@ -375,6 +375,20 @@ namespace Tests.System.Web.Script.Serialization
 			Assert.AreEqual (1, dict ["itemOne"], "#B1");
 			Assert.AreEqual (2, dict ["itemTwo"], "#B2");
 		}
+
+		[Test]
+		public void TestDeserializeUnquotedKeysWithSpaces ()
+		{
+			JavaScriptSerializer ser = new JavaScriptSerializer ();
+			IDictionary dict = ser.Deserialize <Dictionary <string, object>> ("{ itemOne :\"1\",itemTwo:\"2\"}");
+
+			Assert.AreEqual ("1", dict ["itemOne"], "#A1");
+			Assert.AreEqual ("2", dict ["itemTwo"], "#A2");
+
+			dict = ser.Deserialize <Dictionary <string, object>> ("{   itemOne   :1,   itemTwo   :2}");
+			Assert.AreEqual (1, dict ["itemOne"], "#B1");
+			Assert.AreEqual (2, dict ["itemTwo"], "#B2");
+		}
 		
 		[Test]
 		public void TestDeserialize () {
@@ -802,7 +816,7 @@ namespace Tests.System.Web.Script.Serialization
 			string s = ser.Serialize(pc);
 			MyPointContainer pc2 = ser.Deserialize<MyPointContainer>(s);
 		}
-
+		
 		[Test]
 		public void MaxJsonLengthDeserializeObject () 
 		{