@@ -198,13 +198,13 @@ Project(name=kotlinx.serialization, language=Kotlin)
198
198
199
199
### Encoding defaults
200
200
201
- Default values of properties don't have to be encoded , because they will be reconstructed during encoding anyway.
202
- It can be configured by the [ encodeDefaults ] [ JsonBuilder.encodeDefaults ] property .
203
- This is especially useful for nullable properties with null defaults to avoid writing the corresponding
204
- null values .
201
+ Default values of properties are not encoded by default , because they will be reconstructed during decoding anyway.
202
+ See [ Defaults are not encoded ] ( basic-serialization.md#defaults-are-not-encoded ) section for details with example .
203
+ This is especially useful for nullable properties with null defaults and avoids writing the corresponding null values.
204
+ The default behavior can be changed by the [ encodeDefaults ] [ JsonBuilder.encodeDefaults ] property .
205
205
206
206
``` kotlin
207
- val format = Json { encodeDefaults = false }
207
+ val format = Json { encodeDefaults = true }
208
208
209
209
@Serializable
210
210
class Project (
@@ -221,10 +221,10 @@ fun main() {
221
221
222
222
> You can get the full code [ here] ( ../guide/example/example-json-05.kt ) .
223
223
224
- Produces the following output which has only the ` name ` property :
224
+ It produces the following output which encodes the values of all the properties :
225
225
226
226
``` text
227
- {"name":"kotlinx.serialization"}
227
+ {"name":"kotlinx.serialization","language":"Kotlin","website":null }
228
228
```
229
229
230
230
<!-- - TEST -->
@@ -372,7 +372,7 @@ A [JsonElement] class has three direct subtypes, closely following JSON grammar.
372
372
* [ JsonObject] represents a JSON ` {...} ` object. It is a Kotlin [ Map] from ` String ` key to ` JsonElement ` value.
373
373
374
374
The ` JsonElement ` class has ` jsonXxx ` extensions that cast it to its corresponding subtypes
375
- ([ jsonPrimitive] , [ jsonArray] , [ jsonObject] ). The ` JsonPrimitive ` class, in turn,
375
+ ([ jsonPrimitive] [ _jsonPrimitive ] , [ jsonArray] [ _jsonArray ] , [ jsonObject] [ _jsonObject ] ). The ` JsonPrimitive ` class, in turn,
376
376
has convenient converters to Kotlin primitive types ([ int] , [ intOrNull] , [ long] , [ longOrNull] , etc)
377
377
that allow fluent code to work with JSON for which you know the structure of.
378
378
@@ -916,9 +916,9 @@ The next chapter covers [Alternative and custom formats (experimental)](formats.
916
916
[ JsonPrimitive() ] : https://kotlin.github.io/kotlinx.serialization/kotlinx-serialization-json/kotlinx-serialization-json/kotlinx.serialization.json/-json-primitive.html
917
917
[ JsonArray ] : https://kotlin.github.io/kotlinx.serialization/kotlinx-serialization-json/kotlinx-serialization-json/kotlinx.serialization.json/-json-array/index.html
918
918
[ JsonObject ] : https://kotlin.github.io/kotlinx.serialization/kotlinx-serialization-json/kotlinx-serialization-json/kotlinx.serialization.json/-json-object/index.html
919
- [ jsonPrimitive ] : https://kotlin.github.io/kotlinx.serialization/kotlinx-serialization-json/kotlinx-serialization-json/kotlinx.serialization.json/-json-element/index.html#kotlinx.serialization.json%2F%2FjsonPrimitive%2Fkotlinx.serialization.json.JsonElement%23%2FPointingToDeclaration%2F
920
- [ jsonArray ] : https://kotlin.github.io/kotlinx.serialization/kotlinx-serialization-json/kotlinx-serialization-json/kotlinx.serialization.json/-json-element/index.html#kotlinx.serialization.json%2F%2FjsonArray%2Fkotlinx.serialization.json.JsonElement%23%2FPointingToDeclaration%2F
921
- [ jsonObject ] : https://kotlin.github.io/kotlinx.serialization/kotlinx-serialization-json/kotlinx-serialization-json/kotlinx.serialization.json/-json-element/index.html#kotlinx.serialization.json%2F%2FjsonObject%2Fkotlinx.serialization.json.JsonElement%23%2FPointingToDeclaration%2F
919
+ [ _jsonPrimitive ] : https://kotlin.github.io/kotlinx.serialization/kotlinx-serialization-json/kotlinx-serialization-json/kotlinx.serialization.json/-json-element/index.html#kotlinx.serialization.json%2F%2FjsonPrimitive%2Fkotlinx.serialization.json.JsonElement%23%2FPointingToDeclaration%2F
920
+ [ _jsonArray ] : https://kotlin.github.io/kotlinx.serialization/kotlinx-serialization-json/kotlinx-serialization-json/kotlinx.serialization.json/-json-element/index.html#kotlinx.serialization.json%2F%2FjsonArray%2Fkotlinx.serialization.json.JsonElement%23%2FPointingToDeclaration%2F
921
+ [ _jsonObject ] : https://kotlin.github.io/kotlinx.serialization/kotlinx-serialization-json/kotlinx-serialization-json/kotlinx.serialization.json/-json-element/index.html#kotlinx.serialization.json%2F%2FjsonObject%2Fkotlinx.serialization.json.JsonElement%23%2FPointingToDeclaration%2F
922
922
[ int ] : https://kotlin.github.io/kotlinx.serialization/kotlinx-serialization-json/kotlinx-serialization-json/kotlinx.serialization.json/-json-primitive/index.html#kotlinx.serialization.json%2F%2Fint%2Fkotlinx.serialization.json.JsonPrimitive%23%2FPointingToDeclaration%2F
923
923
[ intOrNull ] : https://kotlin.github.io/kotlinx.serialization/kotlinx-serialization-json/kotlinx-serialization-json/kotlinx.serialization.json/-json-primitive/index.html#kotlinx.serialization.json%2F%2FintOrNull%2Fkotlinx.serialization.json.JsonPrimitive%23%2FPointingToDeclaration%2F
924
924
[ long ] : https://kotlin.github.io/kotlinx.serialization/kotlinx-serialization-json/kotlinx-serialization-json/kotlinx.serialization.json/-json-primitive/index.html#kotlinx.serialization.json%2F%2Flong%2Fkotlinx.serialization.json.JsonPrimitive%23%2FPointingToDeclaration%2F
0 commit comments