Go で JSONP リクエストを受け入れる API を開発しています。Write()
構造体を JSON にシリアル化して返すことはできますが、引数がバイト スライスである必要があるため、JSON をパディングまたはコールバック関数でラップするのは少し厄介です。
callback := req.FormValue("callback")
// ...
jsonBytes, _ := json.Marshal(resp)
if callback != "" {
jsonStr := callback + "(" + string(jsonBytes) + ")"
jsonBytes = []byte(jsonStr)
}
responseWriter.Write(jsonBytes)
これを何らかの関数にカプセル化すると思います。ほとんどの場合、文字列/[] バイトの変換がおかしいと思います。これを行うより良い方法はありますか?