Allow using value classes with primitive carriers as map keys (#1470)
Read JsonNull only for non-string literals in JsonTreeReader (#1466)
Properly reuse JsonStringBuilders in CharArrayPool (#1455)
Properly ensure capacity of the string builder on the append slow-path (#1441)
1.2.0
This release has some known critical bugs, so we advise to use 1.2.1 instead.
This release contains a lot of new features and important improvements listed below;
Kotlin 1.5.0 is used as a default compiler and language version.
JSON performance improvements
JSON encoder and decoder were revisited and significantly rewritten,
which lead us to up to 2-3x times speedup in certain cases.
Additional details can be found in the corresponding pull requests: [1], [2].
Ability to specify alternative names during JSON decoding
The one of the most voted issues is fixed now — it is possible to specify multiple names for one property
using new @JsonNames annotation.
Unlike @SerialName, it only affects JSON decoding, so it is useful when dealing with different versions of the API.
We've prepared a documentation for you about it.
JsonConfiguration in public API
JsonConfiguration is exposed as a property of Json instance. You can use it to adjust behavior in
your custom serializers.
Check out more in the corresponding issue and the PR.
Generator for .proto files based on serializable Kotlin classes
Our implementation of Protocol Buffers format uses @Serializable Kotlin classes as a source of schema.
This is very convenient for Kotlin-to-Kotlin communication, but makes interoperability between languages complicated.
To resolve this issue, we now have a
schema generator that can produce .proto files out of Kotlin classes. Using it, you can keep Kotlin
classes as a source of truth and use traditional protoc compilers for other languages at the same time.
To learn more, check out the documentation for the new ProtoBufSchemaGenerator class or
visit the corresponding PR.
Allow using value classes with primitive carriers as map keys (#1470)
Read JsonNull only for non-string literals in JsonTreeReader (#1466)
Properly reuse JsonStringBuilders in CharArrayPool (#1455)
Properly ensure capacity of the string builder on the append slow-path (#1441)
1.2.0 / 2021-04-27
This release has some known critical bugs, so we advise to use 1.2.1 instead.
This release contains a lot of new features and important improvements listed below;
Kotlin 1.5.0 is used as a default compiler and language version.
JSON performance improvements
JSON encoder and decoder were revisited and significantly rewritten,
which lead us to up to 2-3x times speedup in certain cases.
Additional details can be found in the corresponding issues: [1], [2].
Ability to specify alternative names during JSON decoding
The one of the most voted issues is fixed now — it is possible to specify multiple names for one property
using new @JsonNames annotation.
Unlike @SerialName, it only affects JSON decoding, so it is useful when dealing with different versions of the API.
We've prepared a documentation for you about it.
JsonConfiguration in public API
JsonConfiguration is exposed as a property of Json instance. You can use it to adjust behavior in
your custom serializers.
Check out more in the corresponding issue and the PR.
Generator for .proto files based on serializable Kotlin classes
Our implementation of Protocol Buffers format uses @Serializable Kotlin classes as a source of schema.
This is very convenient for Kotlin-to-Kotlin communication, but makes interoperability between languages complicated.
To resolve this issue, we now have a
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps kotlinx-serialization-json from 1.0.1 to 1.2.1.
Release notes
Sourced from kotlinx-serialization-json's releases.
... (truncated)
Changelog
Sourced from kotlinx-serialization-json's changelog.
... (truncated)
Commits
61cc67e
Prepare v1.2.1 release (#1478)b9767c1
Ensure capacity os JsonStringBuilder on multi-symbol slowpatha8af161
Merge remote-tracking branch 'origin/master' into dev8f82c6b
Added support for nullable value, nested and empty collections in protobuf (#...c0976fd
Support@JsonNames
for enum values (#1473)2aa3a30
Handle EOF in skipElement correctly (#1475)fcb641a
Allow using value classes with primitive carriers as map keys without… (#1470)9338a72
Disable test for JS due to timeout restrictions23b3c8f
Read JsonNull only for non-string literals in JsonTreeReadera0a71ea
Properly reuse JsonStringBuilders in CharArrayPoolDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)