2010-04-24 Atsushi Enomoto * JsonSerializationReader.cs : use List if the contract member type is interface. 2010-03-16 Jb Evain * DataContractJsonSerializer.cs: use MOONLIGHT symbol to disambiguate MonoTouch and Moonlight code. 2010-03-13 Kornél Pál * JavaScriptReader.cs: Deserialize "false" correctly. Fixed bug #586712. 2010-03-10 Atsushi Enomoto * JavaScriptReader.cs : moved from Sys.Json/JsonReader.cs. 2010-03-10 Atsushi Enomoto * JavaScriptObjectDeserializer.cs : new internal file, which is used by System.Json (for moonlight compatibility). 2010-03-09 Atsushi Enomoto * JsonSerializationWriter.cs, JsonSerializationReader.cs, JsonWriter.cs : Fix DateTime serialization and "\/" string escape issues. Fixed bug #586169. 2010-02-24 Atsushi Enomoto * JsonWriter.cs : write NaN, INF, -INF as JSON string, not JSON number. Fixed bug #573691. 2010-01-27 Atsushi Enomoto * DataContractJsonSerializer.cs : KnownTypes does not include root type. Fixed bug #573689. 2010-01-27 Atsushi Enomoto * JsonSerializationReader.cs : oops, wrong fix, should consume the reader. 2010-01-27 Atsushi Enomoto * JsonSerializationReader.cs : "null" for string should be read as null, not String.Empty. Fixed bug #573690. 2010-01-26 Sebastien Pouliot * DataContractJsonSerializer_2_1.cs: Don't hide [Field|Method] AccessException inside a SerializationException but in a SecurityException. 2010-01-25 Sebastien Pouliot * DataContractJsonSerializer_2_1.cs: New. Simpler version for Moonlight since it does not inherit from the same base type nor does it overrides any base methods. 2010-01-08 Atsushi Enomoto * TypeMap.cs : forward port r145077 (see change line for 2009-10-29). 2009-12-14 Atsushi Enomoto * TypeMap.cs : handle [Serializable] objects such as KeyValuePair<,> like we do in 2.0. Removed previous workarounds. (Do not serialize and deserialize nonpublic members in "default" mappings.) 2009-12-11 Chris Toshok * TypeMap.cs (CreateDefaultTypeMap): only include non-public property info when dealing with KeyValuePair<,>. This is *not* the way MS handles it, but we emulate things much better with this hack. 2009-12-11 Atsushi Enomoto * JsonReader.cs : e- and e+ was resulting in wrong parse error. This should fix part of bug #531904. 2009-12-08 Chris Toshok * JsonSerializationReader.cs (DeserializeGenericCollection): in the 2.1 case we still need to convert the List<> to an array. 2009-12-07 Chris Toshok * JsonReaderWriterFactory.cs (CreateJsonReader): pass null for the encoding parameter instead of calling Detect. The jsonreader's PushbackReader will autodetect. (Detect): remove. a BufferedStream created from an unseekable stream is itself unseekable, which makes it just as useless. This breaks netflix's isostore file parsing. * JsonReader.cs (PushbackReader): add a ctor which doesn't take an encoding, for the autodetecting reader case. for this ctor, pass true to StreamReader's ctor for detectEncodingFromByteOrderMarks. 2009-12-06 Chris Toshok * JsonSerializationReader.cs (DeserializeGenericCollection): this is jb's (iirc) patch, actually. Types subclassing from ICollection need to be supported, and since it's an interface the implementation might be explicit. So instead of groveling around in the actual type, we need to dispatch through the interface's method. * TypeMap.cs (CreateDefaultTypeMap): we need to include non-public properties, since KeyValuePair items must be able to write to Key and Value properties. * JsonReader.cs (ReadContent): for builtin values (null, true, false), use TryReadString instead of individual ReadChar's, since they aren't reversible if the string didn't match. In the default case, if we're LameSilverlightLiseralParser, we need to push back the current character onto the stream -- this is because for netflix's AppConfig.json we were parsing "frameRatePolicy" as "rameRatePolicy" (the 'f' was triggering the "false" parsing). (class PushBackReader): add this class to unify all the pushing back of characters we need to do. 1 character (JsonReader's old "saved_char") isn't enough given that you could have a property named, e.g., "falsifiable", and we'd need 4 characters worth of pushback to recognize that correctly. 2009-11-20 Atsushi Enomoto * DataContractJsonSerializer.cs, JsonReader.cs : Silverlight uses LAME parser that allows object member name as *raw* string without double-quotes. (This also reverts the previous change.) 2009-11-12 Atsushi Enomoto * JsonSerializationReader.cs : reuse generic collection search logic in KnownTypeCollection.cs. Fixed bug #551671. 2009-10-30 Andreia Gaita * DataContractJsonSerializer.cs: SL accepts keys without "", so tweak the data to fix the quotes before passing it to the deserializer 2009-10-29 Chris Toshok * TypeMap.cs (Deserialize): use FormatterServices.GetUninitializedObject instead of Activator.CreateInstance, since we shouldn't be invoking the default ctor. (forward ported to trunk on 2010-01-08 by atsushi) 2009-10-23 Atsushi Enomoto * DataContractJsonSerializer.cs TypeMap.cs JsonSerializationReader.cs : add experimental monotouch build. 2009-10-08 Atsushi Enomoto * DataContractJsonSerializer.cs, JsonSerializationWriter.cs: alwaysEmitTypeInformation is false by default. It is for __type attribute, not for type attribute. __type name is always with ":#". * TypeMap.cs : sort members in default typemap (it is ordered). Uncomment EmitDefaultValue. * JsonWriter.cs : handle "null" string (it is somewhat messy). 2009-10-05 Atsushi Enomoto * JsonReader.cs : copy string literal parser from System.Json. 2009-09-22 Atsushi Enomoto * JsonSerializationWriter.cs : output "type" attribute on bool values too. * JsonSerializationReader.cs : type loading attempt was insufficient and hence often missed indicated types to deserialize. 2009-09-15 Atsushi Enomoto * JsonWriter.cs : use Stream as its output directly and avoid extraneous preamble output. Fix interop with .NET. 2009-09-07 Atsushi Enomoto * JsonReaderWriterFactory.cs : check null stream (fix test failure). 2009-03-13 Andreia Gaita * JsonReader.cs: fix depth calculation 2009-03-12 Geoff Norton * TypeMap.cs: Avoid checking the getter/setter information until after checking if we have the required attribute decorated. 2009-03-12 Andreia Gaita * JsonReaderWriterFactory.cs: try to auto-detect encoding for streams without BOM 2009-03-02 Chris Toshok * JsonReader.cs: 2.1 has HasValue. 2009-02-02 Atsushi Enomoto * JsonReader.cs : show invalid input character in the error message. 2009-02-02 Atsushi Enomoto * TypeMap.cs : in 2.1 do not use non-2.1 CreateInstance(). 2009-02-02 Atsushi Enomoto * TypeMap.cs : allow get-only collections. Note that they are not always deserializable (in .NET either). 2009-02-02 Atsushi Enomoto * TypeMap.cs : DataContractJsonSerializer in RTM does not seem to reject contract-less types. So populate map for public members. * DataContractJsonSerializer.cs : close XmlWriter to flush stream (and it closes the stream by default). 2009-02-02 Andreia Gaita * JsonSerializationReader.cs : Use 2.1 "approved" calls for Enum.Parse and Convert.ChangeType 2008-02-18 Atsushi Enomoto * DataContractJsonSerializer.cs : IsStartObject() could raise an arbitrary exception, so wrap it inside try-catch too to enclose with SerializationException. * JsonSerializationReader.cs : support DBNull. 2008-01-30 Atsushi Enomoto * DataContractJsonSerializer.cs : fixed .ctor(type, knonwTypes) that missed to delegate knownTypes correctly. * JsonSerializationReader.cs : consider KnownTypes correctly. Take "__type" fully into consideration, not just for arrays. 2008-01-30 Atsushi Enomoto * JsonReader.cs : GetAttribute() was not still missing support for __type. 2008-01-30 Atsushi Enomoto * JsonReader.cs : now __type is fully supported in every methods and properties in correct shape. 2008-01-30 Atsushi Enomoto * JsonReader.cs : Do not consume "__type" (which is the first content of an object) as an element content. It must be handled as an attribute (it needs more changes). 2008-01-24 Atsushi Enomoto * JsonSerializationReader.cs : when deserializing primitive strings, make use of "type" attribute (they are supposed to exist). Output source reader location if available. * JsonReader.cs : implement IXmlLineInfo. 2008-01-24 Atsushi Enomoto * JsonSerializationReader.cs : new, for JSON deserialization support. * DataContractJsonSerializer.cs, TypeMap.cs : basic support for deserialization. 2008-01-24 Atsushi Enomoto * DataContractJsonSerializer.cs, TypeMap.cs, JsonSerializationWriter.cs : split the first to those three files. 2008-01-24 Atsushi Enomoto * DataContractJsonSerializer.cs : Uri and Guid are serialized as string. XmlQualifiedName is serialized as local:ns. 2008-01-22 Atsushi Enomoto * JsonWriter.cs : allow __type attribute. It required couple of changes all around the class. * DataContractJsonSerializer.cs : implemented large part of serialization support (deserialization is not done yet). 2007-12-05 Atsushi Enomoto * DataContractJsonSerializer.cs : moved from System.Runtime.Serialization and changed the namespace. * JsonReader.cs, JsonWriter.cs, JsonReaderWriterFactory.cs, IXmlJsonReaderInitializer.cs, IXmlJsonWriterInitializer.cs : moved from System.Xml and changed the namespace.