Dalam Go, membina respons HTTP dengan kandungan JSON boleh menimbulkan cabaran, terutamanya apabila berurusan dengan hasil yang batal. Artikel ini bertujuan untuk menangani isu biasa yang dihadapi semasa cuba menghasilkan respons JSON.
Seorang pemula dalam Go sedang cuba untuk melaksanakan pelayan HTTP mudah dengan fungsi respons JSON. Walau bagaimanapun, pelayan secara konsisten mengembalikan respons kosong dengan jenis kandungan "teks/plain; charset=utf-8". Pembangun telah membandingkan kod mereka dengan contoh dalam talian tetapi gagal mengenal pasti sebarang perbezaan.
Inti isu terletak pada keterlihatan medan struct. Dalam Go, medan struct mesti dieksport (huruf besar) untuk boleh diakses untuk JSON marshaling.
Contoh Kod (Asal/Salah):
<code class="go">type ResponseCommands struct { key string value bool }</code>
Contoh Kod (Dibetulkan):
<code class="go">type ResponseCommands struct { Key string Value bool }</code>
Apabila medan dieksport, pengekod JSON boleh mengakses dan mengekod nilainya dengan betul. Perubahan mudah tetapi kritikal ini menyelesaikan isu dan membenarkan pelayan mengembalikan respons JSON yang sah.
Atas ialah kandungan terperinci Mengapa Pelayan HTTP My Go Mengembalikan Respons JSON Kosong?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!