Repository navigation
What's Changed
- release script
- ci
- fix
- netstandard 2.0 support
- simplify maps to sets where possible; prefer concurrentdictionary over safedictionary
- modernize syntax in rest of the codebase
- remove silverlight preprocessor remnants
- optimize beautify()
- fix
- support iset<>, migrate tests to nunit 4
- Update LICENSE
- Delete Json5Core.sln.DotSettings.user
- remove more stale files
- remove old changelog
- prune gitignore
- delete stale files
- Update .gitignore
- fix unix tests
- Update dotnet.yml
- Update dotnet.yml
- Update dotnet.yml
- Create dotnet.yml
- up repo path
- add more tests
- improve sets deserialization
- Update README.md
- final touches for v1
- Update README.md
- consistent naming
- provide standard aliases for public api
- nuget pkg details
- generate nuget builds automatically
- bump
- improve HashSet<> support, dehack dictionary
- fix tests
- wip refactor project
- support hashset<>, drop legacy code
- up config
- drop legacy targets
- 1.0.4
- 2.4.0.5 - bug fix UseUTCDateTime = true when deserializing dates
- 2.4.0.4 - bug fix skipping serializing static property in structs
- 2.4.0.3 - bug fix edge case for deserialize - bug fix datamember use
- 1.0.3 (cumulation of previous changes + removed some code that was used for testing)
- Update readme and history
- Final update to license from upstream
- Create LICENSE
- Add .NET Framework test project + small fix
- Version 1.0.2
- Update to fastJSON 2.4.0.3 (version 1.0.1) & finalise merging changes
- 2.4.0.3 * - bug fix edge case for deserialize
- 2.4.0.2
- 2.4.0.2 - numbers > 32 chars treated as double
- Update history_json5.txt
- Update README.md
- Update README.md
- Version 1.0.0
- Version 0.1.0-pre (based on 2.4.0.1)
- Add an additional test (long "integer")
- Initial JSON5 changes (incomplete / WIP)
- Create LICENSE
- 2.4.0.1 - bug fix json5 line break - support for json5 +NaN -NaN
- 2.4.0 - dotnet 5.0 build - debug and release configs working - json5 support (nan, infinity, leading/trailing decimal, trailing comma, string escapes, single/double quotes positive/negative prefix, comments, hex numbers, multi line string breaks)
-
- build configurations
- 2.3.5.3 - bug fix BuildLookup()
- 2.3.5.2 - bug fix endless loop parsing recursive types
- 2.3.5.2 - bug fix endless loop parsing recursive types
- 2.3.5.1 - added nuget package for nunit to the test project - code cleanup
- 2.3.5.1 - added nuget package for nunit to the test project - code cleanup
- 2.3.5 - optimized the parser for skipping when type provided and $types not in json
- 2.4.0 - optimized the parser for skipping when type provided and $types not in json
- 2.4.0 - optimized the parser for skipping when type provided and $types not in json - only test DictionaryWithListValue() fails
- 2.3.3 - removed racist term from code - add fastSJON.DataMember attribute for .net v2+
- 2.3.3 - removed racist term from code - add fastSJON.DataMember attribute for .net v2+
- 2.3.3 - removed racist term from code - add fastSJON.DataMember attribute for .net v2+
- 2.3.2 - added JSONParameters.FullyQualifiedDataSetSchema for edge case datasets - blacklist type checking in DataTable - fix for null values for objects (thanks to ADLER1)
- fixing case-mismatches w/filesystem that prevent compiles on case-sensitive platforms
- 2.3.1 - optimized black list checking
- 2.3.1 - optimized black list checking
- Update README.md
- 2.3.0 - bug fix reading a negative number in int[] - bug fix object equality hash code checking with JSONParameters.OverrideObjectHashCodeChecking (thanks to MTantos1) - added JSONParameters.BlackListTypeChecking default true for friday 13th json attack checking
- 2.2.6 - bug fix reading a negative number in int[] - bug fix object equality hash code checking with JSONParameters.OverrideObjectHashCodeChecking (thanks to MTantos1)
- 2.2.6 - bug fix reading a negative number in int[] - bug fix object equality hash code checking with JSONParameters.OverrideObjectHashCodeChecking (thanks to MTantos1)
- 2.2.6 - bug fix reading a negative number in int[]
- 2.2.5 - bug fix ShowReadOnlyProperties and fields - bug fix ToJSON() and changing ShowReadOnlyProperties per call on a type
- 2.2.5 - bug fix ShowReadOnlyProperties and fields - bug fix ToJSON() and changing ShowReadOnlyProperties per call on a type
- 2.2.4 - optimized CreateLong() and CreateInteger() (thanks to djmarcus)
- 2.2.3.1 - made JSONParameters.MakeCopy() public
- 2.2.3 - bug fix deserialize Dictionary<int,List> without extensions (thanks to Ondrej Medek) - bug fix deserialize Dictionary<int,X[]> without extensions
- 2.2.2 - thread safe json formatter (thanks to Ondrej Medek)
- 2.2.2 - thread safe json formatter (thanks to Ondrej Medek)
- 2.2.1 - added JSONParameters.AutoConvertStringToNumbers to control the auto conversion, if false you will get an exception - fixed file names in nuget package on linux
- 2.2.0 - fixed json parser to create a decimal number if the string does not have an exponent - fixed fast creating lists without capacity constructor - unified Reflection.cs - * breaking runtime change if using RegisterCustomType() *
- 2.1.37 - fixed json parser to create a decimal number if the string does not have an exponent - fixed creating lists without capacity constructor
-
- fixed json parser to create a decimal number if the string does not have an exponent
-
- fix .net35 signing
- 2.1.36 - optimization tweaks ~30% boost on deserialize - changed internal tolower to tolowerinvariant - internal json parser fixed char pointer - internal reflection struct to class
- 2.1.36 - optimization tweaks ~30% boost on deserialize - changed internal tolower to tolowerinvariant - internal json parser fixed char pointer - internal reflection struct to class
-
- reflection struct to class
-
- json parser fixed char pointer
-
- changed tolower to tolowerinvariant
-
- minor performance tweaks
-
- minor tweaks for speed
-
- deserialize optimization test
- 2.1.34 - ability to create internal/private objects (removed the public access restriction on classes)
- 2.1.33 - case insensitive enum (thanks to AgentFire) - auto covert to boolean (number >0 , string : 1, true, yes, on) - fixed .net 3.5 project output framework version
- 2.1.32 - Non public setter / readonly property support (thanks to rbeurskens) - unify reflection.cs with fastBinaryJSON
- 2.1.31 - auto convert to string on deserialize if the object property is string and the json value is not - fixed side effect of changing JSONParameters.UsingGlobalTypes inside classes and affecting the original value - fixed deserialize nested Dictionary without extensions with generic ToObject<>
- 2.1.30 - auto convert to string on deserialize if the object property is string and the json is not
- 2.1.29 - added JSONParameters.AllowNonQuotedKeys for non standard javascript like json - signed .net core and standard assembly
-
- TESTING : AllowNonQuotedKeys and ':' in the string value fixed
-
- TESTIG : AllowNonQuotedKeys
- Set theme jekyll-theme-slate
-
- core signed dll
- 2.1.28 - bug fix deserializing array of objects with type information - test for above - support for .net core and netstandard2.0 via separate project
- 2.1.27 - bug fix case in DataMember attributes (thanks to Elvis Lam) - added ToObject(string json, Type type, JSONParameters par) - bug fix .net v2.0+ build with conditional compilation
- 2.1.27 - bug fix case in DataMember attributes (thanks to Elvis Lam) - added ToObject(string json, Type type, JSONParameters par) - bug fix .net v2.0+ build with conditional compilation
- 2.1.26 - bug fix support for byte[] in DataTable columns (thanks to HKatura) - added JSONParameters.FormatterIndentSpaces - bug fix edge cases for float/decimal/double/long/ulong/int/uint MinValue, MaxValue, NegativeInfinity, PositiveInfinity, Epsilon, NaN (thanks to qaqz111)
- 2.1.25 - support for DataMember[Name] attribute - handling \0 in strings as \u0000 even without extensions
- 2.1.24 - Support ISO8601 formatted DateTimeOffset (thanks to Scott McKay) - security warning for $type usage
-
- min date if data invalid
- Support ISO8601 formatted DateTimeOffset
- Update README.md
- Update README.md
- 2.1.23 - added support for TimeSpan (equates to a long) - added auto convert string numbers "42" -> 42 - added more to Howto.md
- 2.1.22 - bug fix ToObject<Dictionary<string,List>() with extensions off (thanks to chunlizh) - added Howto.md (work in progress) - renamed solution file
- WriteStringDictionary: use IEnumerable instead of IDictionary
- 2.1.21 - bug fix enumerating dynamic objects
- 2.1.21 - bug fix enumerating dynamic objects
- 2.1.20 - bug fix nested dictionary D<,D<,>>
- 2.1.19 - added ToNiceJSON(obj) with default parameters - added support for interface object properties (thanks to DrDeadCrash)
- 2.1.18 - bug fix read only properties to output - added test for readonly properties - sync reflection.cs with fastBinaryJSON - added NonSerialized to the list of ignore default attributes
- 2.1.17 - add support for skipping line comments in json string on read (e.g. //comment) - fixed broken custom type handler (sorry to all) - added test for custom types - auto convert string to int or long if the receiving type expects one - auto convert byte[] if needed (thanks to Enrico Padovani) - bug fix DateTime in anonymous type InvalidProgramException (thanks to skottmckay) - ExpandoObject work correctly - JSON.ToObject<T[]>() works correctly - support for double.NaN float.NaN with test - property/field/key names with quotes etc. handled correctly - fixed byte[] in Dictionary values with test - add twitter data test - support for DateTimeOffset
- 2.1.16 - bug fix ToObject<Dictionary<string, List>>() (thanks to sleiN13) - bug fix CreateStringKeyDictionary() (thanks to John Earnshaw) - type access optimizations - test restructuring
- 2.1.15 - usings cleanup - bug fix : edge case CreateArray() bt is null -> default to typeof(object)
- 2.1.14 - dynamic object processing enhancements (thanks to Justin Dearing)
- Implemented GetDynamicMemberNames() properly
- 2.1.13 - code speedups (thanks to wmjordan)
- 2.1.12 - support for multidimensional arrays (thanks to wmjordan)
- 2.1.11 - bug fix public static properties
- 2.1.10 - bug fix byte[] keys with Dictionary (thanks to Stanislav Lukeš)
- 2.1.9 - JSONParameters.SerializeNullValues = false handles Dictionary and NameValueCollection correctly
- 2.1.8 - bug fix serializing static fields and properties - skip indexer properties on objects (thanks to scymen) - JSONParameters.SerializeToLowerCaseNames also handles Dictionary and NameValueCollection
- 2.1.7 - strict ISO date format compliance with a T in the output (IE, firefox javascript engines complained) - added JSONParameters.SerializeToLowerCaseNames for javascript interop - JSONParameters.IgnoreCaseOnDeserialize is depricated and not needed anymore - added tests for lowercase output - internal code cleanup
- 2.1.6 - fix for release build in net4 (thanks to Craig Minihan) - support for ExpandoObject serialize in net4 (thanks to Craig Minihan) - added JSONParameters.SerializerMaxDepth to control the max depth to go down to - added JSONParameters.InlineCircularReferences to disable the $i feature and inline already seen objects - JSONParameters.UseExtensions = false disables circular references also
- 2.1.5 - added direct nullable convert ToObject<x?> i.e. int? long? etc. (thanks to goroth) - bug fix deserialize private set and no set properties - added ReadonlyTest() test for the above
- 2.1.4 - bug fix deserializing a struct property in a class
- 2.1.3 - added support for DateTime milliseconds - added TestMilliseconds() test
- 2.1.2 - bug fix circular references
- 2.1.2 - bug fix circular references
- 2.1.1 - bug fix obj.List<List> and obj.List<object[]> - added code intellisense help for methods - added ClearReflectionCache() to reset all internal structures
- 2.1.0 - breaking change : removed the JSON.Instance singleton - moved all the state from JSON to the Reflection singleton - all of the JSON interface is now static - added JSONParameters overloads for ToObject() - support for circular referenced object structures - added circular test - fixed the .net35 project file to compile correctly
- 2.0.28.1 - added ParametricConstructorOverride parameter to control non default constructors - fixed failing StructTest when run with others - added create object performance test
- 2.0.28 - removed ToCharArray in the parser for less memory usage (Thanks to Simon Hewitt) - fixed create enum from value and string - replaced safedictionary with dictionary for some of the internals so no locks on read - added custom ignore attributes (Thanks to Jared Thirsk) - using IsDefined instead of GetCustomAttributes (Thanks to Andrew Rissing) - moved all the reflection code out of JSON.cs - now you can deserialize non default constructor classes (Thanks to Anton Afanasyev)
- 2.0.27 - added UseValuesOfEnums parameter to control enum output - fixed working with const properties and fields (i.e ignored)
- 2.0.26 - bug fix objects in array dynamic types e.g. [1,2,{"prop":90}] - added support for special collections : StringDictionary, NameValueCollection
- 2.0.25 - bug fix dynamic json and root arrays e.g. [1,2,3,4]
- 2.0.24 - access inner property in arrays in dynamic types e.g. d.arr[1].a (Thanks to Greg Ryjikh) - add JSONParameters.KVStyleStringDictionary to control string key dictionary output
- 2.0.23 - JSONParameters.IgnoreCaseOnDeserialize now works - added ignore case test
- 2.0.22 - added .net 3.5 project - now compiling to 'output' directory - added signed assembly - version numbers will stay at 2.0.0.0 for drop in compatibility - file version will reflect the build number - bug fix deserializing to dictionaries instead of dataset when type is not defined
- 2.0.21 - fixed edge case tailing '' in formatter - code cleanup formatter
- 2.0.20 - fixed hastable deserialize - added test for hashtable - added abstract class test - changed list of getters to array ~3% performance gain - removed unused code
- Update README.md
- Create README.md
- 2.0.19 - fix dynamic objects and lists - fix deserialize Dictionary<T, List> and Dictionary<T, V[]> - added tests for dictionary with lists
- 2.0.18 - edge case empty array deserialize "[]" -> T[] - code cleanup - fixed serialize readonly properties
- 2.0.17 - added serialization of static fields and properties - added dynamic object support and test
- 2.0.16 - bug fix formatter - added test for formatter
- 2.0.15 - removed CUSTOMTYPE directives from code - fix for writing enumerable object
- 2.0.14 - Optimizations done by Sean Cooper - using Stopwatch instead of DateTime for timings - myPropInfo using enum instead of boolean - using switch instead of linked if statements - parsing DateTime optimized - StringBuilder using single char output instead of strings for " chars etc
- 2.0.13 - bug fix comma edge cases with nulls - unified DynamicMethod calls with SilverLight4 code - test cases for silverlight
- 2.0.13 - bug fix comma edge cases with nulls - unified DynamicMethod calls with SilverLight4 code - test cases for silverlight
- 2.0.12 - bug fix nested generic types (thanks to Zambiorix) - bug fix comma edge cases with nulls
- 2.0.12 - bug fix nested generic types (thanks to Zambiorix) - bug fix comma edge cases with nulls
- 2.0.11 - bug fix single char number json - added UseEscapedUnicode parameter for controlling string output in \uxxxx for unicode/utf8 format - bug fix null and generic ToObject<>() - bug fix List<> of custom types
- 2.0.11 - bug fix single char number json - added UseEscapedUnicode parameter for controlling string output in \uxxxx for unicode/utf8 format - bug fix null and generic ToObject()
- 2.0.11 - bug fix single char number json - added UseEscapedUnicode parameter for controlling string output in \uxxxx for unicode/utf8 format
- 2.0.10 - added MonoDroid project
- 2.0.9 - added support for root level DataSet and DataTable deserialize (you have to do ToObject(...) ) - added dataset tests
- 2.0.8 - bug fix big number conversions - * breaking change Parse will return longs and doubles instead of longs and decimals - ToObject on value types will auto convert the data (e.g ToObject() )
- 2.0.7 - bug fix missing comma with single property and extension enabled
- 2.0.6 - singleton uses [ThreadStatic] for concurrency (thanks to Philip Jander) - bug fix extra comma in the output when only 1 property in the object (thanks to Philip Jander)
- 2.0.5 - fixed number parsing for invariant format - added a test for German locale number testing (,. problems)
- 2.0.5 - fixed number parsing for invariant format - added a test for German locale number testing (,. problems)
- 2.0.4 - fixed null objects -> returns "null" - added sealed keyword to classes - bug fix SerializeNullValues=false and an extra comma at the end - UseExtensions=false will disable global types also - fixed parameters setting for Parse()
- 2.0.3 - readonly property checking on deserialize (thanks to Slava Pocheptsov) - bug fix deserialize nested types with unit test (thanks to Slava Pocheptsov) - fix the silverlight4 project build (silverlight5 is not supported)
- 2.0.3 - readonly property checking on deserialize (thanks to Slava Pocheptsov) - bug fix deserialize nested types with unit test (thanks to Slava Pocheptsov) - fix the silverlight4 project build (silverlight5 is not supported)
- 2.0.3 - readonly property checking on deserialize (thanks to Slava Pocheptsov) - bug fix deserialize nested types with unit test (thanks to Slava Pocheptsov) - fix the silverlight4 project build (silverlight5 is not supported)
- 2.0.3 - readonly property checking on deserialize (thanks to Slava Pocheptsov) - bug fix deserialize nested types with unit test (thanks to Slava Pocheptsov) - fix the silverlight4 project build (silverlight5 is not supported)
- 2.0.2 - bug fix $types and arrays
- 2.0.1 - bug fix preserve internal objects when FillObject called - changed ArrayList to List and consolidated silverlight code - added more tests - speed increase when using global types ($types)
- 1.9.9.1 - bug fix reflection code
- 1.9.9.1 - bug fix reflection code
- 1.9.8.1 - spelling mistake on JSONParameters - bug fix Parameter initialization
- v1.9.8 - added DeepCopy(obj) and DeepCopy(obj) - refactored code to JSONParameters and removed the JSON overloads - added support to serialize anonymous types (deserialize is not possible at the moment) - bug fix $types output with non object root
-
- updated the Formatter
- v1.9.7 - removed indent logic from serializer - added Beautify(json) method to JSON for indenting - added locks on SafeDictionary - added FillObject(obj,json) for filling an existing object
- v1.9.6.1 - bug fix SilverLight version to support GlobalTypes
- v1.9.6 - added a $types extension for global type definitions which reduce the size of the output json - added UsingGlobalTypes config for controling the above (default = true) - bug fix datatable commas between arrays and table definitions (less lint complaining) - string key dictionaries are serialized optimally now (not K V format)
- 1.9.5 - bug fix datatable schema serialize & deserialize
- v1.9.4 - ShowReadOnlyProperties added for exporting readonly properties (default = false) - if datetime value ends in "Z" then automatic UTC time calculated - if using UTC datetime the output end in a "Z" (standards compliant)
- v1.9.3 - UTC datetime handling via UseUTCDateTime = true property - added support for enum as key in dictionary
- v1.9.2 - fixed to fullname instaed of name when searching for types in property cache (namespace1.myclass , namespace2.myclass are now different)
- v1.9.1 - fixed SerializeNullValues = false bug
- v1.9 -added support for public fields
- v1.8 - silverlight merge - RegisterCustomType() for user types
-
- added datatable support - added indented output for better viewing
-
- JSONSerializer.cs ConvertToJSON WriteObject fixed to WriteValue - added unit test project
-
- JSONSerializer.cs ConvertToJSON WriteObject fixed to WriteValue - added unit test project
-
- JSONSerializer.cs ConvertToJSON WriteObject fixed to WriteValue - added unit test project
-
- xmlignore on properties handled - date output fix -> 0000 format - special case optimized dictionary<string,string> output {"prop":"value",...} insteadof [{"k":"prop","v":"value"},...] - override serialize nulls to output
- initial release v1.7.5
- initial release v1.7.5
- initial release v1.7.5
Updated Projects
Json5Core.Bench.csproj -> 0.0.1
Json5Core.csproj -> 1.0.12
UnitTestsCore.csproj -> 0.0.1