Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Menjana Output JSON Boleh Dibaca Manusia dalam Go?

Bagaimanakah Saya Boleh Menjana Output JSON Boleh Dibaca Manusia dalam Go?

Susan Sarandon
Susan Sarandonasal
2024-11-20 11:31:55793semak imbas

How Can I Generate Human-Readable JSON Output in Go?

Output JSON Boleh Dibaca Manusia dalam Go

Dalam Go, adalah mungkin untuk menjana output JSON yang boleh dibaca manusia tanpa memerlukan jq luaran pembalut. Pakej pengekodan/json menyediakan fungsi terbina dalam untuk mengcantikkan output JSON.

Menggunakan json.MarshalIndent() atau json.Encoder.SetIndent()

Json. Fungsi MarshalIndent() memformat nilai Go sebagai rentetan JSON dan mengendenkannya mengikut awalan dan inden yang ditentukan aksara.

Sebagai contoh, untuk memformat peta sebagai JSON:

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"
}

Anda juga boleh menggunakan json.Encoder.SetIndent() kaedah untuk mengesot keluaran daripada pengekod.

Menggunakan json.Indent()

Jika anda mempunyai rentetan JSON yang anda ingin format, anda boleh menggunakan fungsi json.Indent():

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"
}

Menyesuaikan Inden

Aksara inden boleh disesuaikan berdasarkan pilihan anda. Secara lalai, awalan ialah rentetan kosong dan inden ialah satu ruang. Anda boleh mengatasi lalai ini untuk membuat output JSON dengan gaya lekukan yang diingini.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Output JSON Boleh Dibaca Manusia 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