json_serializable 0.5.8+1
json_serializable: ^0.5.8+1 copied to clipboard
Generates utilities to aid in serializing to/from JSON.
0.5.8+1 #
- Support the Dart 2.0 stable release.
0.5.8 #
-
Small fixes to support Dart 2 runtime semantics.
-
Support serializing types provided by platform-specific libraries (such as Flutter) if they use custom convert functions.
0.5.7 #
-
Added support for
JsonKey.required
.- When
true
, generated code throws aMissingRequiredKeysException
if the key does not exist in the JSON map used to populate the annotated field. - Will be captured and wrapped in a
CheckedFromJsonException
ifchecked
is enabled injson_serializable
.
- When
-
Added
JsonKey.disallowNullValue
.- When
true
, generated code throws aDisallowedNullValueException
if the corresponding keys exist in in the JSON map, but it's value is null. - Will be captured and wrapped in a
CheckedFromJsonException
ifchecked
is enabled injson_serializable
.
- When
-
Added support for
Uri
conversion. -
Added missing
checked
parameter to theJsonSerializableGenerator.withDefaultHelpers
constructor. -
Added
explicit_to_json
configuration option.- See
JsonSerializableGenerator.explicitToJson
for details.
- See
-
Added
generate_to_json_function
configuration option.- See
JsonSerializableGenerator.generateToJsonFunction
for details.
- See
0.5.6 #
- Added support for
JsonSerializable.disallowUnrecognizedKeys
.- Throws an
UnrecognizedKeysException
if it finds unrecognized keys in the JSON map used to populate the annotated field. - Will be captured and wrapped in a
CheckedFromJsonException
ifchecked
is enabled injson_serializable
.
- Throws an
- All
fromJson
constructors now use block syntax instead of fat arrows.
0.5.5 #
-
Added support for
JsonKey.defaultValue
. -
enum
deserialization now uses helpers provided byjson_annotation
. -
Small change to how nullable
Map
values are deserialized. -
Small whitespace changes to
JsonLiteral
generation to align withdartfmt
. -
Improve detection of
toJson
andfromJson
in nested types.
0.5.4+1 #
- Fixed a bug introduced in
0.5.4
in some cases where enum values are nested in collections.
0.5.4 #
-
Add
checked
configuration option. Iftrue
, generatedfromJson
functions include extra checks to validate proper deserialization of types. -
Added
any_map
to configuration. AllowsfromJson
code to support dynamicMap
instances that are not explicitlyMap<String, dynaimc>
. -
Added support for classes with type arguments.
-
Use
Map.map
for more map conversions. Simplifies generated code and fixes a subtle issue when theMap
key type isdynamic
orObject
.
0.5.3 #
-
Require the latest version of
package:analyzer
-v0.32.0
. -
If
JsonKey.fromJson
function parameter isIterable
orMap
with type arguments ofdynamic
orObject
, omit the arguments when generating a cast._myHelper(json['key'] as Map)
instead of_myHelper(json['key'] as Map<dynamic, dynamic>)
. -
JsonKey.fromJson
/.toJson
now support functions with optional arguments.
0.5.2 #
- If
JsonKey.fromJson
/toJson
are set, apply them before any custom or defaultTypeHelper
instances. This allows customDateTime
parsing, by preempting the existingDateTime
TypeHelper
.
0.5.1 #
-
Support new
fromJson
andtoJson
fields onJsonKey
. -
Use
log
exposed bypackage:build
. This requires end-users to have at leastpackage:build_runner
^0.8.2
. -
Updated minimum
package:source_gen
dependency to0.8.1
which includes improved error messages.
0.5.0 #
-
BREAKING Removed deprecated support for
require_library_directive
/requireLibraryDirective
inbuild_runner
configuration. -
BREAKING Removed the deprecated
generators.dart
library. -
BREAKING Removed
jsonPartBuilder
function from public API. -
Support the latest
package:source_gen
. -
Private and ignored fields are now excluded when generating serialization and deserialization code by using
@JsonKey(ignore: true)
. -
Throw an exception if a private field or an ignored field is referenced by a required constructor argument.
-
More comprehensive escaping of string literals.
package:json_serializable/type_helper.dart
#
-
Breaking The
nullable
parameter onTypeHelper.serialize
and.deserialize
has been removed. It is now exposed inSerializeContext
andDeserializeContext
abstract classes as a read-only property. -
Potentially Breaking The
metadata
property onSerializeContext
andDeserializeContext
is now readonly. This would potentially break code that extends these classes – which is not expected.
0.4.0 #
-
Potentially Breaking Inherited fields are now processed and used when generating serialization and deserialization code. There is a possibility that the generated code may change in undesired ways for classes annotated for
v0.3
. -
Avoid unnecessary braces in string escapes.
-
Use single quotes when generating code.
0.3.2 #
- The
require_library_directive
option now defaults tofalse
. The option will be removed entirely in0.4.0
.
0.3.1+2 #
- Support the latest version of the
analyzer
package.
0.3.1+1 #
- Expanded
package:build
support to allow version0.12.0
.
0.3.1 #
-
Add a
build.yaml
so the builder can be consumed by users ofbuild_runner
version 0.7.0. -
Now requires a Dart
2.0.0-dev
release.
0.3.0 #
-
NEW top-level library
json_serializable.dart
.-
Replaces now deprecated
generators.dart
to accessJsonSerializableGenerator
andJsonLiteralGenerator
. -
Adds the
jsonPartBuilder
function to make it easy to create aPartBuilder
, without creating an explicit dependency onsource_gen
.
-
-
BREAKING
UnsupportedTypeError
added a new required constructor argument:reason
. -
BREAKING The deprecated
annotations.dart
library has been removed. Usepackage:json_annotation
instead. -
BREAKING The arguments to
TypeHelper
serialize
anddeserialize
have changed.SerializeContext
andDeserializeContext
(new classes) are now passed instead of theTypeHelperGenerator
typedef (which has been deleted).
-
JsonSerializableGenerator
now supports an optionaluseWrappers
argument when generates and uses wrapper classes to (hopefully) improve the speed and memory usage of serialization – at the cost of more code.NOTE:
useWrappers
is not guaranteed to improve the performance of serialization. Benchmarking is recommended. -
Make
null
field handling smarter. If a field is classified as notnullable
, then use this knowledge when generating serialization code – even ifincludeIfNull
isfalse
.
0.2.5 #
-
Throw an exception if a duplicate JSON key is detected.
-
Support the
nullable
field on theJsonSerializable
class annotation.
0.2.4+1 #
- Throw a more helpful error when a constructor is missing.
0.2.4 #
-
Moved the annotations in
annotations.dart
topackage:json_annotations
.- Allows package authors to release code that has the corresponding annotations without requiring package users to inherit all of the transitive dependencies.
-
Deprecated
annotations.dart
.
0.2.3 #
- Write out
toJson
methods more efficiently when the first fields written are not intercepted by the null-checking method.
0.2.2+1 #
-
Simplify the serialization of
Map
instances when no conversion is required forvalues
. -
Handle
int
literals in JSON being assigned todouble
fields.
0.2.2 #
- Enable support for
enum
values. - Added
asConst
toJsonLiteral
. - Improved the handling of Dart-specific characters in JSON strings.
0.2.1 #
- Upgrade to
package:source_gen
v0.7.0
0.2.0+1 #
- When serializing classes that implement their own
fromJson
constructor, honor their constructor parameter type.
0.2.0 #
-
BREAKING Types are now segmented into their own libraries.
-
package:json_serializable/generators.dart
containsGenerator
implementations. -
package:json_serializable/annotations.dart
contains annotations. This library should be imported with your target classes. -
package:json_serializable/type_helpers.dart
containsTypeHelper
classes and related helpers which allow custom generation for specific types.
-
-
BREAKING Generation fails for types that are not a JSON primitive or that do not explicitly supports JSON serialization.
-
BREAKING
TypeHelper
:-
Removed
can
methods. Returnnull
from(de)serialize
if the provided type is not supported. -
Added
(de)serializeNested
arguments to(de)serialize
methods allowing generic types. This is how support forIterable
,List
, andMap
is implemented.
-
-
BREAKING
JsonKey.jsonName
was renamed toname
and is now a named parameter. -
Added support for optional, non-nullable fields.
-
Added support for excluding
null
values when generating JSON. -
Eliminated all implicit casts in generated code. These would end up being runtime checks in most cases.
-
Provide a helpful error when generation fails due to undefined types.
0.1.0+1 #
- Fix homepage in
pubspec.yaml
.
0.1.0 #
-
Split off from source_gen.
-
Add
/* unsafe */
comments to generated output likely to be unsafe. -
Support (de)serializing values in
Map
. -
Fix ordering of fields when they are initialized via constructor.
-
Don't use static members when calculating fields to (de)serialize.