Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mencetak Output JSON dengan Cantik dalam Go Menggunakan Fungsi Terbina dalam?

Bagaimana untuk Mencetak Output JSON dengan Cantik dalam Go Menggunakan Fungsi Terbina dalam?

Linda Hamilton
Linda Hamiltonasal
2024-11-22 04:54:11693semak imbas

How to Pretty Print JSON Output in Go Using Built-in Functions?

Cantik Mencetak Output JSON dalam Go dengan Fungsi Terbina Dalam

Apabila berurusan dengan output JSON dalam program Go, selalunya diingini untuk membuatnya boleh dibaca oleh manusia. Walaupun jq boleh digunakan untuk tujuan ini, terdapat juga fungsi terbina dalam dalam perpustakaan standard Go yang boleh mencapai hasil yang diingini.

Json Marshal Indenting

The pakej pengekodan/json menyediakan fungsi json.MarshalIndent() untuk mencetak output JSON yang cantik. Ia memerlukan dua parameter tambahan:

  • awalan: Rentetan untuk ditambahkan sebelum setiap baris
  • inden: Rentetan untuk ditambah selepas setiap tahap lekukan

Dengan menghantar rentetan kosong sebagai awalan dan ruang sebagai inden, anda boleh mendapatkan JSON yang boleh dibaca manusia output:

m := map[string]interface{}{"id": "uuid1", "name": "John Smith"}

data, err := json.MarshalIndent(m, "", "  ")
if err != nil {
    panic(err)
}
fmt.Println(string(data))

Output:

{
  "id": "uuid1",
  "name": "John Smith"
}
{
  "id": "uuid1",
  "name": "John Smith"
}

Anda juga boleh menggunakan kaedah json.Encoder.SetIndent() untuk menetapkan parameter lekukan apabila menggunakan Pengekod:

enc := json.NewEncoder(os.Stdout)
enc.SetIndent("", "  ")
if err := enc.Encode(m); err != nil {
    panic(err)
}

Json Indent

Jika anda sudah mempunyai rentetan JSON, anda boleh menggunakan fungsi json.Indent() untuk memformatnya:

src := `{"id":"uuid1","name":"John Smith"}`

dst := &bytes.Buffer{}
if err := json.Indent(dst, []byte(src), "", "  "); err != nil {
    panic(err)
}
fmt.Println(dst.String())

Output:

{
  "id": "uuid1",
  "name": "John Smith"
}

Atas ialah kandungan terperinci Bagaimana untuk Mencetak Output JSON dengan Cantik dalam Go Menggunakan Fungsi Terbina dalam?. 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