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-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.