Rumah > pembangunan bahagian belakang > Golang > Mengapa medan struktur kelihatan kosong?

Mengapa medan struktur kelihatan kosong?

PHPz
Lepaskan: 2024-02-09 10:54:07
ke hadapan
769 orang telah melayarinya

Mengapa medan struktur kelihatan kosong?

editor php Xinyi akan menerangkan kepada anda mengapa medan struktur dipaparkan sebagai kosong. Dalam pengaturcaraan, struktur ialah jenis data tersuai yang digunakan untuk menyimpan pelbagai jenis data. Apabila medan struktur kelihatan kosong, ini mungkin kerana struktur tidak dimulakan dengan betul atau nilai tidak diberikan kepada medan. Selain itu, ia juga mungkin disebabkan oleh isu skop medan atau ralat definisi struktur. Untuk menyelesaikan masalah ini, anda boleh menyemak bahagian permulaan kod untuk memastikan bahawa medan diberikan dengan betul. Pada masa yang sama, semak definisi dan skop struktur untuk memastikan ia boleh mengakses nilai medan dengan betul.

Kandungan soalan

Saya cuba mendapatkan output yang betul daripada kod berikut:

package main

import (
    "encoding/json"
    "fmt"
)

func main() {

    var jsonBlob3 = []byte(`[
        {"name": "Platypus", "spec": "Monotremata", "id":25 },
        {"name": "Quoll",    "spec": "Dasyuromorphia", "id":25 }
    ]`)
    type Animal2 struct {
        name  string
        spec string
        id uint32
    }
    var animals []Animal2
    err := json.Unmarshal(jsonBlob3, &animals)
    if err != nil {
        fmt.Println("error:", err)
    }
    fmt.Printf("%+v\n", animals)
}
Salin selepas log masuk

Klip taman permainan

Medan struktur kosong semasa mencetak. Saya pasti terdapat pepijat bodoh di suatu tempat, tetapi saya masih baru menggunakan Go dan saya telah terperangkap dalam masalah ini selama beberapa jam. Tolong bantu.

Penyelesaian

Masalah ni dah banyak kali muncul. Masalahnya ialah hanya medan yang dieksport boleh dimarshaled/unmarshaled.

Eksport medan struktur bermula dengan huruf besar.

type Animal2 struct {
    Name string
    Spec string
    Id   uint32
}
Salin selepas log masuk

Cubalah di Go Playground.

Perhatikan bahawa teks JSON mengandungi nama medan dalam teks huruf kecil, tetapi json 包“聪明”足以匹配它们。如果它们完全不同,您可以使用 struct 标签告诉 json bagaimana pakej mencarinya (atau cara menyusunnya) dalam teks JSON, contohnya:

type Animal2 struct {
    Name string `json:"json_name"`
    Spec string `json:"specification"`
    Id   uint32 `json:"some_custom_id"`
}
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa medan struktur kelihatan kosong?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:stackoverflow.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan