Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Adakah Pakej `pengekodan/json` Go Menawarkan Cara untuk Memformat Output JSON untuk Kebolehbacaan Manusia?

Adakah Pakej `pengekodan/json` Go Menawarkan Cara untuk Memformat Output JSON untuk Kebolehbacaan Manusia?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-19 04:13:03246semak imbas

Does Go's `encoding/json` Package Offer a Way to Format JSON Output for Human Readability?

Jq Wrapper for Human-Readable JSON Output in Go

Soalan:

Adakah terdapat Jq wrapper sumber terbuka untuk Go yang boleh menukar output JSON yang boleh dibaca mesin kepada boleh dibaca manusia format?

Jawapan:

Ya, pakej pengekodan/json dalam Go menyediakan sokongan terbina dalam untuk memformat output JSON.

Penyelesaian:

Kod berikut menunjukkan cara menggunakan json.MarshalIndent() untuk mencipta output JSON inden:

import (
    "encoding/json"
    "fmt"
)

func main() {
    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"
}

Jika anda mempunyai rentetan JSON sedia ada, anda boleh menggunakan json.Indent() untuk memformat ia:

import "encoding/json"

func main() {
    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"
}

Penyesuaian:

Anda boleh menyesuaikan lekukan menggunakan awalan dan parameter inden bagi fungsi inden. Contohnya:

data, err := json.MarshalIndent(m, "+", "-")
if err != nil {
    panic(err)
}

Output:

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

Atas ialah kandungan terperinci Adakah Pakej `pengekodan/json` Go Menawarkan Cara untuk Memformat Output JSON untuk Kebolehbacaan Manusia?. 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