Rumah pembangunan bahagian belakang Golang Mari kita lihat penggunaan golang gjson

Mari kita lihat penggunaan golang gjson

Apr 06, 2023 am 08:56 AM

Dalam bidang pembangunan perisian moden, pemprosesan data dan penghuraian data adalah tugas yang sering dihadapi oleh pembangun. Dengan kemunculan dan pembangunan berterusan format data baharu, cara menghurai dan memproses data ini dengan cekap telah menjadi satu cabaran. Dalam hal ini, golang gjson ialah alat yang sangat berguna yang boleh membantu kami menghuraikan data JSON dengan mudah.

Pengenalan kepada gjson

gjson ialah pustaka bahasa go untuk menghuraikan data JSON. Ia melaksanakan fungsi menghuraikan data JSON dengan cepat melalui API berantai. gjson ringkas dan mudah digunakan kerana ia hanya memfokuskan pada bahagian data JSON dan bukannya keseluruhan dokumen. Selain itu, gjson juga menyokong pertanyaan laluan JSON. Ia boleh memberikan kemudahan yang hebat apabila menghuraikan data JSON yang kompleks.

Contoh penggunaan mudah

Mari kita lihat cara menggunakan gjson dalam program golang. Mula-mula kita perlu mengimport perpustakaan gjson:

import "github.com/tidwall/gjson"
Salin selepas log masuk

Kemudian, kita boleh menghuraikan data JSON dengan cepat dengan:

package main

import (
    "fmt"
    "github.com/tidwall/gjson"
)

func main(){
    data := `{"name": "golang", "version": "1.15.8"}`
    value := gjson.Get(data, "version")
    fmt.Printf("version: %s\n", value.String())
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan gjson.Get () fungsi mendapatkan semula nilai bernama "versi" dalam data JSON. Kita boleh menukar jenis nilai kepada rentetan untuk output pada konsol.

Contoh penggunaan yang rumit

Mari kita lihat contoh yang lebih kompleks untuk menghuraikan data JSON yang kompleks melalui gjson. Pertimbangkan fail JSON seperti berikut:

{
    "name": "Jack",
    "age": 30,
    "hobbies": [
        {
            "name": "reading",
            "level": 2
        },
        {
            "name": "music",
            "level": 3
        },
        {
            "name": "swimming",
            "level": 1
        }
    ],
    "contact": {
        "email": "jack@example.com",
        "phone": {
            "home": "123456",
            "mobile": "78901234"
        }
    }
}
Salin selepas log masuk

Kita boleh menggunakan gjson untuk mengakses pelbagai bahagian data JSON, contohnya untuk mendapatkan elemen tatasusunan pertama bahagian hobi, kodnya adalah seperti berikut:

package main

import (
    "fmt"
    "github.com/tidwall/gjson"
)

func main() {
    data := `{"name": "Jack", "age": 30, "hobbies": [{"name": "reading", "level": 2}, {"name": "music", "level": 3}, {"name": "swimming", "level": 1}], "contact": {"email": "jack@example.com", "phone": {"home": "123456", "mobile": "78901234"}}}`
    hobbies := gjson.Get(data, "hobbies")
    firstHobby := gjson.Get(hobbies.String(), "#0")
    fmt.Printf("first hobby: %s\n", firstHobby.String())
}
Salin selepas log masuk

Di atas Dalam kod, #0 mewakili elemen pertama tatasusunan, #1 mewakili elemen kedua, dan seterusnya. Kami juga boleh memilih semua elemen tatasusunan mengikut kad bebas *. Sebagai contoh, anda boleh mendapatkan semua tahap minat menggunakan kod berikut:

package main

import (
    "fmt"
    "github.com/tidwall/gjson"
)

func main() {
    data := `{"name": "Jack", "age": 30, "hobbies": [{"name": "reading", "level": 2}, {"name": "music", "level": 3}, {"name": "swimming", "level": 1}], "contact": {"email": "jack@example.com", "phone": {"home": "123456", "mobile": "78901234"}}}`
    levels := gjson.Get(data, "hobbies.*.level")
    fmt.Printf("hobby levels: %s\n", levels.String())
}
Salin selepas log masuk

Dalam contoh di atas, kami menggunakan . untuk menunjukkan traversal yang mendalam dan bukannya hanya melintasi elemen anak serta-merta.

gjson boleh membaca data JSON bersarang atau data berstruktur tidak teratur dengan mudah dan APInya sangat intuitif dan mudah dibaca. Jika anda mahukan lebih banyak maklumat dan contoh, sila lawati [tapak web rasmi gjson](https://github.com/tidwall/gjson).

Ringkasan

Artikel ini memperkenalkan penggunaan utama golang gjson, termasuk kes penggunaan mudah dan kes penggunaan kompleks. Menggunakan gjson boleh meningkatkan kecekapan penulisan kod kami semasa memproses data JSON. gjson ialah salah satu perpustakaan penghuraian JSON yang paling mudah dan paling mudah digunakan dalam komuniti golang. Salah satu perkara hebat tentang gjson ialah APInya agak mudah dan boleh digunakan dengan perpustakaan lain untuk membina aplikasi. Oleh kerana gjson boleh memberikan prestasi penghuraian JSON yang cekap, lebih mudah untuk mengekalkan prestasi cemerlang dalam senario penghuraian data besar.

Atas ialah kandungan terperinci Mari kita lihat penggunaan golang gjson. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

GO Language Pack Import: Apakah perbezaan antara garis bawah dan tanpa garis bawah? GO Language Pack Import: Apakah perbezaan antara garis bawah dan tanpa garis bawah? Mar 03, 2025 pm 05:17 PM

GO Language Pack Import: Apakah perbezaan antara garis bawah dan tanpa garis bawah?

Bagaimana untuk melaksanakan pemindahan maklumat jangka pendek antara halaman dalam kerangka beego? Bagaimana untuk melaksanakan pemindahan maklumat jangka pendek antara halaman dalam kerangka beego? Mar 03, 2025 pm 05:22 PM

Bagaimana untuk melaksanakan pemindahan maklumat jangka pendek antara halaman dalam kerangka beego?

Bagaimana saya menulis objek dan stub untuk ujian di GO? Bagaimana saya menulis objek dan stub untuk ujian di GO? Mar 10, 2025 pm 05:38 PM

Bagaimana saya menulis objek dan stub untuk ujian di GO?

Bagaimana saya boleh menggunakan alat pengesanan untuk memahami aliran pelaksanaan aplikasi saya? Bagaimana saya boleh menggunakan alat pengesanan untuk memahami aliran pelaksanaan aplikasi saya? Mar 10, 2025 pm 05:36 PM

Bagaimana saya boleh menggunakan alat pengesanan untuk memahami aliran pelaksanaan aplikasi saya?

Bagaimana cara menukar senarai hasil pertanyaan mysql ke dalam slice struktur tersuai dalam bahasa Go? Bagaimana cara menukar senarai hasil pertanyaan mysql ke dalam slice struktur tersuai dalam bahasa Go? Mar 03, 2025 pm 05:18 PM

Bagaimana cara menukar senarai hasil pertanyaan mysql ke dalam slice struktur tersuai dalam bahasa Go?

Bagaimana anda menulis ujian unit di GO? Bagaimana anda menulis ujian unit di GO? Mar 21, 2025 pm 06:34 PM

Bagaimana anda menulis ujian unit di GO?

Bagaimana cara menulis fail dalam bahasa Go dengan mudah? Bagaimana cara menulis fail dalam bahasa Go dengan mudah? Mar 03, 2025 pm 05:15 PM

Bagaimana cara menulis fail dalam bahasa Go dengan mudah?

Bagaimana saya boleh menentukan kekangan jenis tersuai untuk generik di GO? Bagaimana saya boleh menentukan kekangan jenis tersuai untuk generik di GO? Mar 10, 2025 pm 03:20 PM

Bagaimana saya boleh menentukan kekangan jenis tersuai untuk generik di GO?

See all articles