golang slice to json

WBOY
WBOYasal
2023-05-10 10:05:361216semak imbas

Dengan pembangunan berterusan Golang, Slice telah menjadi salah satu jenis data yang sangat penting di Golang, dan fleksibiliti serta kemudahan penggunaannya patut dipuji. A slice ialah jenis rujukan yang dilaksanakan menggunakan tatasusunan di bawah hud. Slices boleh menambah dan mengurangkan elemen secara dinamik dan lebih mudah digunakan daripada tatasusunan. JSON (JavaScript Object Notation) ialah format pertukaran data yang ringan dengan kebolehbacaan yang baik dan penghuraian yang mudah. Di Golang, kepingan boleh ditukar kepada format JSON melalui pustaka standard "pengekodan/json".

Artikel ini akan meneroka secara terperinci cara menukar kepingan dalam format Golang kepada JSON.

Kaedah menukar kepingan kepada JSON

Di Golang, kaedah menukar kepingan kepada JSON adalah sangat mudah Anda hanya perlu menggunakan fungsi Marshal dalam "pengekodan/json" pustaka standard. Fungsi Marshal menerima parameter antara muka jenis{} dan mengembalikan tatasusunan bait dan ralat. Sebelum penukaran, jenis data dalam kepingan perlu ditakrifkan sebagai jenis struktur.

Berikut ialah contoh kod ringkas yang menunjukkan cara menukar kepingan ke dalam format JSON:

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name string
    Age  int
}

func main() {
    persons := []Person{{"Alice", 25}, {"Bob", 31}, {"Charlie", 26}, {"David", 23}}

    jsonBytes, err := json.Marshal(persons)
    if err != nil {
        fmt.Println("转换出错:", err)
    }

    jsonStr := string(jsonBytes)
    fmt.Println(jsonStr)
}

Dengan kod di atas, kita boleh mendapatkan output berikut:

[{"Name":"Alice","Age":25},{"Name":"Bob","Age":31},{"Name":"Charlie","Age":26},{"Name":"David","Age":23}]

Daripadanya boleh dilihat daripada output bahawa setiap elemen dalam data format JSON yang ditukar ialah objek JSON yang terdiri daripada struktur, dan setiap medan struktur ditukar kepada pasangan nilai kunci dalam objek JSON.

Bantah JSON

Selain menghiris, jenis data lain dalam Golang, seperti struktur, peta, dll., boleh ditukar kepada format JSON melalui fungsi Marshal. Kita boleh menukar kepingan dalam contoh di atas kepada struktur untuk dipaparkan:

package main

import (
    "encoding/json"
    "fmt"
)

type Person struct {
    Name string
    Age  int
}

func main() {
    person := Person{
        Name: "Alice",
        Age:  25,
    }

    jsonBytes, err := json.Marshal(person)
    if err != nil {
        fmt.Println("转换出错:", err)
    }

    jsonStr := string(jsonBytes)
    fmt.Println(jsonStr)
}

Melalui kod di atas, kita boleh mendapatkan hasil keluaran berikut:

{"Name":"Alice","Age":25}

Seperti yang dapat dilihat daripada hasil output , data format JSON yang ditukar, ia juga merupakan objek JSON yang terdiri daripada struktur, dan setiap medan struktur ditukar kepada pasangan nilai kunci dalam objek JSON.

Karakter khas melarikan diri

Dalam objek JSON, sesetengah aksara memerlukan pelarian khas, seperti petikan berganda ("), garis miring (/), baris baharu (
) dsb. Jika terdapat ini aksara dalam rentetan asal, aksara khas perlu dikeluarkan sebelum menukar kepada format JSON

Dalam Golang, fungsi Escape disediakan dalam pustaka standard "pengekodan/json". kod yang menunjukkan cara untuk melarikan diri aksara khas:

package main

import (
    "encoding/json"
    "fmt"
)

func main() {
    str := ""Hello, Golang!" / 
"

    jsonBytes, err := json.Marshal(str)
    if err != nil {
        fmt.Println("转换出错:", err)
    }

    jsonStr := string(jsonBytes)
    fmt.Println(jsonStr)

    jsonStr = json.EscapeString(str)
    fmt.Println(jsonStr)
}

Dengan kod di atas, kita boleh mendapatkan output berikut:

""Hello, Golang!" / 
"
""Hello, Golang!" / \n"

Daripada hasil output kita boleh Ia boleh dilihat bahawa dalam rentetan asal , petikan berganda dan garis miring terlepas; dan selepas melarikan diri menggunakan fungsi EscapeString, aksara slash dan baris baharu juga terlepas

Kesimpulan

Artikel ini memperkenalkan kaedah menukar kepingan kepada JSON format dalam Golang, serta kaedah penukaran jenis data lain (seperti struktur dan peta) Ia juga menerangkan cara untuk melepaskan aksara khas Saya harap artikel ini dapat membantu anda

Atas ialah kandungan terperinci golang slice to json. 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
Artikel sebelumnya:Sebab renungan golang lambatArtikel seterusnya:Sebab renungan golang lambat