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

Barbara Streisand
Lepaskan: 2024-10-27 10:42:03
asal
760 orang telah melayarinya

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>
Salin selepas log masuk

Output mempamerkan pengendalian yang berjaya dan perbezaan format respons JSON:

Success, message: Message
Error, code: [ERROR_CODE]
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan