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:
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!