summaryrefslogtreecommitdiff
path: root/formats/json/commonMain/src/kotlinx/serialization/json/JsonAnnotations.kt
diff options
context:
space:
mode:
Diffstat (limited to 'formats/json/commonMain/src/kotlinx/serialization/json/JsonAnnotations.kt')
-rw-r--r--formats/json/commonMain/src/kotlinx/serialization/json/JsonAnnotations.kt8
1 files changed, 6 insertions, 2 deletions
diff --git a/formats/json/commonMain/src/kotlinx/serialization/json/JsonAnnotations.kt b/formats/json/commonMain/src/kotlinx/serialization/json/JsonAnnotations.kt
index aae69889..4ec5a2b5 100644
--- a/formats/json/commonMain/src/kotlinx/serialization/json/JsonAnnotations.kt
+++ b/formats/json/commonMain/src/kotlinx/serialization/json/JsonAnnotations.kt
@@ -24,12 +24,16 @@ import kotlin.native.concurrent.*
* data class Project(@JsonNames("title") val name: String)
*
* val project = Json.decodeFromString<Project>("""{"name":"kotlinx.serialization"}""")
- * println(project)
+ * println(project) // OK
* val oldProject = Json.decodeFromString<Project>("""{"title":"kotlinx.coroutines"}""")
- * println(oldProject)
+ * println(oldProject) // Also OK
* ```
*
* This annotation has lesser priority than [SerialName].
+ * In practice, this means that if property A has `@SerialName("foo")` annotation, and property B has `@JsonNames("foo")` annotation,
+ * Json key `foo` will be deserialized into property A.
+ *
+ * Using the same alternative name for different properties across one class is prohibited and leads to a deserialization exception.
*
* @see JsonBuilder.useAlternativeNames
*/