[Day 10] Ktor 處理 JSON 格式的回傳

雖然產生網頁畫面也是一個重要的功能,不過對最近的後端開發來說,更多的開發內容可能是透過 API 傳遞訊息給前端或者其他服務。

今天我們就來談談怎麼用 Ktor 處理 JSON 格式的回傳。

jackson

我們可以看看專案裡面 jackson 的安裝範例

install(ContentNegotiation) {
    jackson {
        enable(SerializationFeature.INDENT_OUTPUT)
    }
}

這個部分幫我們安裝了一個 ContentNegotiation 的套件:jackson

import com.fasterxml.jackson.databind.*
import io.ktor.jackson.*

在 build.gradle 裡面可以看到,jackson 是利用 gradle 安裝進專案裡面的:

    implementation "io.ktor:ktor-jackson:$ktor_version"

然後,我們看到下面的範例路徑 /json/jackson

get("/json/jackson") {
    call.respond(mapOf("hello" to "world"))
}

要看這個範例路徑,我們像之前一樣,直接連到 http://127.0.0.1:8080/json/jackson 就可以看到了:

{
    hello: "world"
}

這裡的 mapOf 是 Kotlin 的函式,可以用來建立一個唯讀的 map。在這裡我們用來產生 json 要回傳內容的結構。