json_serializable 0.5.0
json_serializable: ^0.5.0 copied to clipboard
Generates utilities to aid in serializing to/from JSON.
0.5.0 #
-
BREAKING Removed deprecated support for
require_library_directive/requireLibraryDirectiveinbuild_runnerconfiguration. -
BREAKING Removed the deprecated
generators.dartlibrary. -
BREAKING Removed
jsonPartBuilderfunction 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
nullableparameter onTypeHelper.serializeand.deserializehas been removed. It is now exposed inSerializeContextandDeserializeContextabstract classes as a read-only property. -
Potentially Breaking The
metadataproperty onSerializeContextandDeserializeContextis 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_directiveoption now defaults tofalse. The option will be removed entirely in0.4.0.
0.3.1+2 #
- Support the latest version of the
analyzerpackage.
0.3.1+1 #
- Expanded
package:buildsupport to allow version0.12.0.
0.3.1 #
-
Add a
build.yamlso the builder can be consumed by users ofbuild_runnerversion 0.7.0. -
Now requires a Dart
2.0.0-devrelease.
0.3.0 #
-
NEW top-level library
json_serializable.dart.-
Replaces now deprecated
generators.dartto accessJsonSerializableGeneratorandJsonLiteralGenerator. -
Adds the
jsonPartBuilderfunction to make it easy to create aPartBuilder, without creating an explicit dependency onsource_gen.
-
-
BREAKING
UnsupportedTypeErroradded a new required constructor argument:reason. -
BREAKING The deprecated
annotations.dartlibrary has been removed. Usepackage:json_annotationinstead. -
BREAKING The arguments to
TypeHelperserializeanddeserializehave changed.SerializeContextandDeserializeContext(new classes) are now passed instead of theTypeHelperGeneratortypedef (which has been deleted).
-
JsonSerializableGeneratornow supports an optionaluseWrappersargument when generates and uses wrapper classes to (hopefully) improve the speed and memory usage of serialization – at the cost of more code.NOTE:
useWrappersis not guaranteed to improve the performance of serialization. Benchmarking is recommended. -
Make
nullfield handling smarter. If a field is classified as notnullable, then use this knowledge when generating serialization code – even ifincludeIfNullisfalse.
0.2.5 #
-
Throw an exception if a duplicate JSON key is detected.
-
Support the
nullablefield on theJsonSerializableclass annotation.
0.2.4+1 #
- Throw a more helpful error when a constructor is missing.
0.2.4 #
-
Moved the annotations in
annotations.darttopackage: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
toJsonmethods more efficiently when the first fields written are not intercepted by the null-checking method.
0.2.2+1 #
-
Simplify the serialization of
Mapinstances when no conversion is required forvalues. -
Handle
intliterals in JSON being assigned todoublefields.
0.2.2 #
- Enable support for
enumvalues. - Added
asConsttoJsonLiteral. - Improved the handling of Dart-specific characters in JSON strings.
0.2.1 #
- Upgrade to
package:source_genv0.7.0
0.2.0+1 #
- When serializing classes that implement their own
fromJsonconstructor, honor their constructor parameter type.
0.2.0 #
-
BREAKING Types are now segmented into their own libraries.
-
package:json_serializable/generators.dartcontainsGeneratorimplementations. -
package:json_serializable/annotations.dartcontains annotations. This library should be imported with your target classes. -
package:json_serializable/type_helpers.dartcontainsTypeHelperclasses 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
canmethods. Returnnullfrom(de)serializeif the provided type is not supported. -
Added
(de)serializeNestedarguments to(de)serializemethods allowing generic types. This is how support forIterable,List, andMapis implemented.
-
-
BREAKING
JsonKey.jsonNamewas renamed tonameand is now a named parameter. -
Added support for optional, non-nullable fields.
-
Added support for excluding
nullvalues 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.



