@@ -198,13 +198,13 @@ Project(name=kotlinx.serialization, language=Kotlin)
198198
199199### Encoding defaults
200200
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 .
205205
206206``` kotlin
207- val format = Json { encodeDefaults = false }
207+ val format = Json { encodeDefaults = true }
208208
209209@Serializable
210210class Project (
@@ -221,10 +221,10 @@ fun main() {
221221
222222> You can get the full code [ here] ( ../guide/example/example-json-05.kt ) .
223223
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 :
225225
226226``` text
227- {"name":"kotlinx.serialization"}
227+ {"name":"kotlinx.serialization","language":"Kotlin","website":null }
228228```
229229
230230<!-- - TEST -->
@@ -372,7 +372,7 @@ A [JsonElement] class has three direct subtypes, closely following JSON grammar.
372372* [ JsonObject] represents a JSON ` {...} ` object. It is a Kotlin [ Map] from ` String ` key to ` JsonElement ` value.
373373
374374The ` 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,
376376has convenient converters to Kotlin primitive types ([ int] , [ intOrNull] , [ long] , [ longOrNull] , etc)
377377that allow fluent code to work with JSON for which you know the structure of.
378378
@@ -916,9 +916,9 @@ The next chapter covers [Alternative and custom formats (experimental)](formats.
916916[ JsonPrimitive() ] : https://kotlin.github.io/kotlinx.serialization/kotlinx-serialization-json/kotlinx-serialization-json/kotlinx.serialization.json/-json-primitive.html
917917[ JsonArray ] : https://kotlin.github.io/kotlinx.serialization/kotlinx-serialization-json/kotlinx-serialization-json/kotlinx.serialization.json/-json-array/index.html
918918[ 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
922922[ 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
923923[ 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
924924[ 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