Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar struktur kepada rentetan JSON menggunakan fungsi json.Marshal dalam golang

Bagaimana untuk menukar struktur kepada rentetan JSON menggunakan fungsi json.Marshal dalam golang

PHPz
PHPzasal
2023-11-18 08:05:301327semak imbas

Bagaimana untuk menukar struktur kepada rentetan JSON menggunakan fungsi json.Marshal dalam golang

Cara menggunakan fungsi json.Marshal dalam golang untuk menukar struktur kepada rentetan JSON

Dalam pembangunan perisian moden, penghantaran dan penyimpanan data sering menggunakan format JSON (JavaScript Object Notation). Dalam bahasa Go, kita boleh menggunakan fungsi json.Marshal untuk menukar struktur kepada rentetan JSON.

Fungsi json.Marshal terletak dalam pakej pengekodan/json, dan tandatangan fungsinya adalah seperti berikut:

func Marshal(v interface{}) ([]byte, error)

di mana v ialah pembolehubah struktur yang akan ditukar kepada rentetan JSON, dan fungsi mengembalikan kepingan bait dan ralat. Jika penukaran berjaya, kepingan bait yang dikembalikan ialah perwakilan rentetan JSON jika penukaran gagal, ralat bukan nol dikembalikan.

Di bawah kami menggunakan contoh khusus untuk menunjukkan cara menggunakan fungsi json.Marshal untuk menukar struktur kepada rentetan JSON.

package main

import (
    "encoding/json"
    "fmt"
)

type Student struct {
    Name  string
    Age   int
    Score float64
}

func main() {
    student := Student{
        Name:  "Alice",
        Age:   20,
        Score: 89.5,
    }

    // 将结构体转换为JSON字符串
    jsonStr, err := json.Marshal(student)
    if err != nil {
        fmt.Println("转换失败:", err)
        return
    }

    fmt.Println(string(jsonStr))
}

Jalankan kod di atas, hasil output ialah:

{"Name":"Alice","Age":20,"Score":89.5}

Dalam kod di atas, kami mentakrifkan struktur Pelajar, kemudian buat pembolehubah pelajar dan tetapkan nilai awal. Seterusnya, kami memanggil fungsi json.Marshal untuk menukar pelajar kepada rentetan JSON dan mendapatkan pembolehubah jsonStr. Akhir sekali, kami menggunakan fmt.Println untuk mencetak jsonStr.

Perlu diambil perhatian bahawa fungsi json.Marshal menukar nama medan struktur kepada nama atribut JSON dan menukar nilai atribut kepada jenis JSON yang sesuai. Secara lalai, nama atribut dalam rentetan JSON yang ditukar ialah semua huruf kecil. Jika anda ingin mengekalkan kes asal nama medan, anda boleh menggunakan arahan json dalam Teg medan struktur untuk menetapkannya.

Contohnya:

type Student struct {
    Name  string `json:"name"`
    Age   int    `json:"age"`
    Score float64 `json:"score"`
}

Dengan cara ini, nama atribut dalam rentetan JSON yang ditukar akan selaras dengan nama medan struktur asal.

Untuk meringkaskan, kita boleh menukar struktur menjadi rentetan JSON dengan menggunakan fungsi json.Marshal. Fungsi ini sangat mudah dan secara automatik boleh mengendalikan penukaran jenis data yang kompleks dan surat-menyurat nama medan. Dengan fungsi ini, kami boleh mengendalikan penghantaran dan penyimpanan data JSON dalam bahasa Go dengan mudah.

Atas ialah kandungan terperinci Bagaimana untuk menukar struktur kepada rentetan JSON menggunakan fungsi json.Marshal dalam golang. 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