Rumah >pembangunan bahagian belakang >Golang >Bagaimana Mengendalikan Respons JSON dengan Elegan dengan Format Yang Berbeza-beza?

Bagaimana Mengendalikan Respons JSON dengan Elegan dengan Format Yang Berbeza-beza?

Barbara Streisand
Barbara Streisandasal
2024-10-27 10:42:03820semak imbas

How to Elegantly Handle JSON Responses with Varying Formats?

Meneroka Pendekatan untuk Mengendalikan Respons JSON dengan Pelbagai Format

Dalam senario di mana titik akhir yang digunakan mengembalikan JSON dalam pelbagai format, adalah penting untuk mencari pendekatan yang elegan untuk mengendalikan variasi ini . Dilema timbul kerana sifat tidak boleh ubah titik akhir.

Strategi biasa melibatkan penggunaan berbilang struct untuk penyahkodan, cuba menyahkod ke dalam struct yang mengharapkan rentetan dan bertukar kepada struct ganti dengan tatasusunan apabila menghadapi ralat. Walaupun kaedah ini mencapai kefungsian yang diingini, mungkin terdapat pendekatan yang lebih halus.

Menggunakan Penegasan Jenis dan Suis Jenis

Penyelesaian yang disyorkan ialah menyahmarshal JSON ke dalam nilai{} antara muka. Nilai ini kemudiannya boleh diperiksa menggunakan penegasan jenis atau suis jenis untuk menentukan jenis sebenarnya.

Contoh dalam Go menunjukkan keberkesanan pendekatan ini:

<code class="go">type Response struct {
    Message interface{} `json:"message"`
}

func main() {
    inputs := []string{
        `{"message":"Message"}`,
        `{"message":["ERROR_CODE"]}`,
    }

    for _, input := range inputs {
        var r Response
        if err := json.Unmarshal([]byte(input), &r); err != nil {
            panic(err)
        }
        switch x := r.Message.(type) {
        case string:
            fmt.Println("Success, message:", x)
        case []interface{}:
            fmt.Println("Error, code:", x)
        default:
            fmt.Println("Something else:", x)
        }
    }
}</code>

Output mempamerkan pengendalian yang berjaya dan perbezaan format respons JSON:

Success, message: Message
Error, code: [ERROR_CODE]

Dengan memanfaatkan pendekatan ini, anda boleh mengendalikan format JSON yang berbeza dengan mudah, menghapuskan keperluan untuk berbilang struktur atau pengendalian ralat.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Respons JSON dengan Elegan dengan Format Yang Berbeza-beza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn