以前有 JSONObject、Gson、Jackson,但現在 Kotlin 也自己出了一套 Kotlinx.serialization,只能說官方有支援真舒服,一起來體驗 Kotlinx.serialization 的強大吧!。
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.1"
implementation "org.jetbrains.kotlinx:kotlinx-serialization-protobuf:1.2.1"
只要在 Data class 上面加上@Serializable
,這樣就能用序列化,是不是很棒呢
@Serializable
data class CreateNote(
val content: String = BaseConstants.EMPTY_STRING,
val readPermission: String = BaseConstants.OWNER,
val writePermission: String = BaseConstants.OWNER,
val commentPermission: String = BaseConstants.OWNER,
)
使用Json.encodeToString()
CreateNote
建立起來,這樣就能得到createNote
的物件
val createNote = CreateNote(
content = "這邊是要上傳的文字"
)
@Serializable
,所以就會看到 Data class 可以使用.serializer()
,如此一來就拿到字串啦
val json: String = Json.encodeToString(CreateNote.serializer(), createNote)
使用Json.decodeFromString()
val createNote: CreateNote = Json.decodeFromString(CreateNote.serializer(), responseBody)