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

Susan Sarandon
Lepaskan: 2024-11-20 11:31:55
asal
710 orang telah melayarinya

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

Output:

{
  "id": "uuid1",
  "name": "John Smith"
}
Salin selepas log masuk
Salin selepas log masuk

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

Output:

{
  "id": "uuid1",
  "name": "John Smith"
}
Salin selepas log masuk
Salin selepas log masuk

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!

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