JsonKey.ignore
. Replaced by...JsonKey.includeFromJson
and JsonKey.includeToJson
to allow fine-grained control of if a field is encoded/decoded.JsonSerializable.createPerFieldToJson
which allows generating a _$ModelPerFieldToJson
, enabling partial encoding of a model.JsonKey
documentation to align with new features in package:json_serializable
.>=2.18.0
.JsonEnum.valueField
which allows specifying a field in an “enhanced enum” to use for serialization instead of specifying each value individually with JsonValue
.JsonSerializable(createFieldMap: true)
. (#1164)JsonSerializable(converters: <JsonConverter>[])
(#1072)FieldRename.screamingSnake
.JsonKey.readValue
.checkedCreate
and checkedConvert
to support JsonKey.readValue
.toString
in included exceptions.JsonKey.unknownEnumValue
from Object?
to Enum?
. Assuming this feature has been used correctly, it shouldn't be a breaking change.$enumDecodeNullable
parameter unknownValue
from Object?
to Enum?
.JsonSerializable.constructor
field to allow specifying an alternative constructor to invoke when creating a fromJson
helper.JsonEnum
for annotating enum
types.$enumDecodeNullable
and $enumDecode
helpers to minimize generated code.const
JsonKey.nullForUndefinedEnumValue
for use in JsonKey.unknownEnumValue
when you want to use null
for an unknown value.>=2.14.0
.const
constructor to JsonConverter
.$checkedCreate
helper that will be used by package:json_serializable
v5+ and replaces both $checkedNew
and $checkedConvert
.checked: true
when ArgumentError.message
is null
.JsonSerializable.fromJson
to handle null
values.JsonSerializable
defaults
and withDefaults()
.$checkedConvert
helper to support null-safety.nullable
field on JsonKey
– the constructor entry still exists, but it's marked @Deprecated
. The nullability of a field is now determined by the Dart type system.null
values for CheckedFromJsonException.message
by using toString()
with unrecognized error types.UnrecognizedKeysException.toString()
.JsonSerializable.genericArgumentFactories
.JsonSerializable.genericArgumentFactories
field.2.7.0
.2.6.0
.pub.dev
score.JsonSerializable.useWrappers
and associated $
-prefixed helpers.JsonSerializable.generateToJsonFunction
.encodeEmptyCollection
from JsonSerializable
and JsonKey
.JsonSerializable.ignoreUnannotated
.JsonKey.unknownEnumValue
.2.3.0
.json_annotation
3.0.0
and that are not supported in json_serializable
3.0.0
.JsonSerializable.useWrappers
and associated $
-prefixed helpersJsonSerializable.generateToJsonFunction
,encodeEmptyCollection
from JsonSerializable
and JsonKey
.pascal
as an additional fieldRename
option.2.2.0
.badKey
parameter and field to CheckedFromJsonException
.Require at least Dart 2.1.1
.
Added to encodeEmptyCollection
to JsonKey
and JsonSerializable
.
JsonSerializable.fromJson
now throws CheckedFromJsonException
on errors. This is potentially a breaking change.
Added a more helpful toString
to CheckedFromJsonException
.
Potentially Breaking JsonSerializable
no longer sets default values for fields when constructor arguments are unset or null
. This is not likely an issue for developers using this class as an annotation with a compatible version of package:json_serializable
, but it may cause issues if class is used in other contexts.
Support all build.yaml
configuration options on classes by adding a number of fields to JsonSerializable
: anyMap
, checked
, explicitToJson
, generateToJsonFunction
, and useWrappers
.
JsonConverter
class to support custom conversion of types.fieldRename
option to JsonSerializable
and the associated FieldRename
enum.Added JsonValue
class for annotating enum
fields with a custom serialization value.
Removed $checkAllowedKeys
, $enumDecode
and $enumDecodeNullable
which are no longer needed by the latest release of package:json_serializable
.
FormatException
is caught in “checked mode”, use the message
property when creating CheckedFromJsonException
.Added $checkKeys
helper function and deprecated $checkAllowedKeys
. Upgrading to the latest json_serializable
and re-running your build will eliminate any @deprecated
hints you see.
Added BadKeyException
exception which is the abstract super class for MissingRequiredKeysException
, UnrecognizedKeysException
, and DisallowedNullValueException
.
Added JsonKey.required
field and an associated MissingRequiredKeysException
that is thrown when required
fields don't have corresponding keys in a source JSON map.
Added JsonKey.disallowNullValue
field and an associated DisallowedNullValueException
that is thrown when corresponding keys exist in a source JSON map, but their values are null
.
Updated documentation of JsonSerializable.createToJson
to include details of the new generate_to_json_function
configuration option.
UnrecognizedKeysException.message
output and documentation comments.JsonSerializable.disallowUnrecognizedKeys
.$
and should only be referenced by generated code. It is not meant for direct use.UnrecognizedKeysException
for reporting errors.CheckedFromJsonException
message
property is now String
(instead of Object
).Added JsonKey.defaultValue
.
Added helpers for deserialization of enum
values. These functions starting with $
are referenced by generated code. They are not meant for direct use.
Added CheckedFromJsonException
which is thrown by code generated when checked
is enabled in json_serializable
.
Added functions to support the checked
generation option. These functions starting with $
are referenced by generated code. They are not meant for direct use.
fromJson
and toJson
fields to JsonKey
class.ignore
field to JsonKey
class annotation$JsonMapWrapper
– and helper functions – $wrapMap
, $wrapMapHandleNull
, $wrapList
, and $wrapListHandleNull
– to support the useWrappers
option added to JsonSerializableGenerator
in v0.3.0
of package:json_serializable
.JsonSerializable
class annotationnullable
field.JsonSerializable
and JsonLiteral
.