Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Jadikan Data JSON Escape Unicode Mentah Boleh Dibaca dalam Go?

Bagaimanakah Saya Boleh Jadikan Data JSON Escape Unicode Mentah Boleh Dibaca dalam Go?

DDD
DDDasal
2024-12-05 19:28:11685semak imbas

How Can I Make Raw Unicode-Escaped JSON Data Readable in Go?

Bagaimanakah cara saya Membuat Kandungan Dikod Unikod Mentah Boleh Dibaca?

Apabila meminta data JSON daripada API web, anda mungkin menemui kandungan ASCII mentah yang muncul sebagai Unicode melarikan diri. Semasa menggunakan bufio.ScanRunes untuk menghuraikan respons gagal, menyahkod respons menggunakan alatan seperti pakej json atau strconv.Unquote boleh menukar Unicode melarikan diri menjadi teks boleh dibaca dengan berkesan.

Penjelasan Terperinci:

Data JSON yang disediakan dalam soalan mengandungi aksara Unicode yang diwakili menggunakan escape segaris ke belakang, seperti u5408 dan u672a. Untuk menyahkod escape ini dan mendedahkan aksara Unicode sebenar, kita boleh menggunakan kaedah berikut:

  • Pakej JSON (json): JSON menyokong penyahkodan automatik Unicode escape apabila menyahmarshaling data JSON . Berikut ialah contoh:
package main

import (
    "encoding/json"
)

func main() {
    var i interface{}
    err := json.Unmarshal([]byte(`{"name": "\u5408\u80a5"}`), &i)
    fmt.Println(err, i)
}

Output (cuba di Go Playground):

<nil> map[name:同学]
  • strconv.Nyah petikan: Untuk menyahpetik serpihan teks berkod Unikod yang lebih kecil, strconv.Unquote boleh digunakan. Ia menjangkakan rentetan yang disertakan dalam petikan, seperti yang ditunjukkan di bawah:
fmt.Println(strconv.Unquote(`"\u7d20\u672a\u8c0b"`))

Output (cuba di Taman Permainan Go):

素未谋

Ingat bahawa strconv.Unquote memerlukan rentetan untuk disertakan dalam petikan, dicapai menggunakan rentetan mentah literal ( ` ) untuk menghalang pengkompil daripada menyahpetik escape sendiri.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Jadikan Data JSON Escape Unicode Mentah Boleh Dibaca dalam Go?. 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