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

Mengapa medan struktur kelihatan kosong?

PHPz
PHPzke hadapan
2024-02-09 10:54:07740semak imbas

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)
}

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
}

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"`
}

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

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam