Skip to content

Commit 3ac9b89

Browse files
authored
Provide documentation for @EncodeDefault and @JsonClassDiscriminator (#1832)
Fixes #1657
1 parent f3de873 commit 3ac9b89

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+634
-463
lines changed

docs/basic-serialization.md

Lines changed: 148 additions & 106 deletions
Large diffs are not rendered by default.

docs/json.md

Lines changed: 169 additions & 111 deletions
Large diffs are not rendered by default.

docs/serialization-guide.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Once the project is set up, we can start serializing some classes.
2424
* <a name='optional-property-initializer-call'></a>[Optional property initializer call](basic-serialization.md#optional-property-initializer-call)
2525
* <a name='required-properties'></a>[Required properties](basic-serialization.md#required-properties)
2626
* <a name='transient-properties'></a>[Transient properties](basic-serialization.md#transient-properties)
27-
* <a name='defaults-are-not-encoded'></a>[Defaults are not encoded](basic-serialization.md#defaults-are-not-encoded)
27+
* <a name='defaults-are-not-encoded-by-default'></a>[Defaults are not encoded by default](basic-serialization.md#defaults-are-not-encoded-by-default)
2828
* <a name='nullable-properties'></a>[Nullable properties](basic-serialization.md#nullable-properties)
2929
* <a name='type-safety-is-enforced'></a>[Type safety is enforced](basic-serialization.md#type-safety-is-enforced)
3030
* <a name='referenced-objects'></a>[Referenced objects](basic-serialization.md#referenced-objects)
@@ -115,7 +115,7 @@ Once the project is set up, we can start serializing some classes.
115115
* <a name='explicit-nulls'></a>[Explicit nulls](json.md#explicit-nulls)
116116
* <a name='allowing-structured-map-keys'></a>[Allowing structured map keys](json.md#allowing-structured-map-keys)
117117
* <a name='allowing-special-floating-point-values'></a>[Allowing special floating-point values](json.md#allowing-special-floating-point-values)
118-
* <a name='class-discriminator'></a>[Class discriminator](json.md#class-discriminator)
118+
* <a name='class-discriminator-for-polymorphism'></a>[Class discriminator for polymorphism](json.md#class-discriminator-for-polymorphism)
119119
* <a name='json-elements'></a>[Json elements](json.md#json-elements)
120120
* <a name='parsing-to-json-element'></a>[Parsing to Json element](json.md#parsing-to-json-element)
121121
* <a name='types-of-json-elements'></a>[Types of Json elements](json.md#types-of-json-elements)

guide/example/example-basic-02.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ package example.exampleBasic02
44
import kotlinx.serialization.*
55
import kotlinx.serialization.json.*
66

7-
@Serializable
7+
@Serializable
88
class Project(val name: String, val language: String)
99

1010
fun main() {

guide/example/example-basic-03.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ package example.exampleBasic03
44
import kotlinx.serialization.*
55
import kotlinx.serialization.json.*
66

7-
@Serializable
7+
@Serializable
88
data class Project(val name: String, val language: String)
99

1010
fun main() {

guide/example/example-classes-01.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ package example.exampleClasses01
44
import kotlinx.serialization.*
55
import kotlinx.serialization.json.*
66

7-
@Serializable
7+
@Serializable
88
class Project(
99
// name is a property with backing field -- serialized
1010
var name: String
1111
) {
1212
var stars: Int = 0 // property with a backing field -- serialized
13-
13+
1414
val path: String // getter only, no backing field -- not serialized
15-
get() = "kotlin/$name"
15+
get() = "kotlin/$name"
1616

1717
var id by ::name // delegated property -- not serialized
1818
}

guide/example/example-classes-02.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ package example.exampleClasses02
44
import kotlinx.serialization.*
55
import kotlinx.serialization.json.*
66

7-
@Serializable
7+
@Serializable
88
class Project private constructor(val owner: String, val name: String) {
99
constructor(path: String) : this(
10-
owner = path.substringBefore('/'),
10+
owner = path.substringBefore('/'),
1111
name = path.substringAfter('/')
12-
)
12+
)
1313

1414
val path: String
15-
get() = "$owner/$name"
15+
get() = "$owner/$name"
1616
}
1717

1818
fun main() {

guide/example/example-classes-04.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ package example.exampleClasses04
44
import kotlinx.serialization.*
55
import kotlinx.serialization.json.*
66

7-
@Serializable
7+
@Serializable
88
data class Project(val name: String, val language: String)
99

1010
fun main() {

guide/example/example-classes-05.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ package example.exampleClasses05
44
import kotlinx.serialization.*
55
import kotlinx.serialization.json.*
66

7-
@Serializable
7+
@Serializable
88
data class Project(val name: String, val language: String = "Kotlin")
99

1010
fun main() {

guide/example/example-classes-06.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ fun computeLanguage(): String {
99
return "Kotlin"
1010
}
1111

12-
@Serializable
12+
@Serializable
1313
data class Project(val name: String, val language: String = computeLanguage())
14-
14+
1515
fun main() {
1616
val data = Json.decodeFromString<Project>("""
1717
{"name":"kotlinx.serialization","language":"Kotlin"}

0 commit comments

Comments
 (0)