Skip to content

Release v1.0.12

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Jun 00:21

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