Why do structure fields appear empty?

PHPz
Release: 2024-02-09 10:54:07
forward
744 people have browsed it

Why do structure fields appear empty?

php editor Xinyi will explain to you why the structure fields are displayed as empty. In programming, a structure is a custom data type used to store different types of data. When a structure field appears empty, it may be because the structure was not initialized correctly or a value was not assigned to the field. In addition, it may also be due to field scope issues or structure definition errors. To solve this problem, you can check the initialization section of the code to ensure that the fields are assigned correctly. At the same time, check the definition and scope of the structure to ensure that it can correctly access the field values.

Question content

I'm struggling to get the correct output from the following code:

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)
}
Copy after login

Playground clip

The structure field is empty when printing. I'm sure there's a stupid bug somewhere, but I'm still new to Go and I've been stuck on this problem for a few hours. please help.

Solution

This problem has occurred many times. The problem is that only exported fields can be marshaled/unmarshaled.

Export structure fields starting with an uppercase letter.

type Animal2 struct {
    Name string
    Spec string
    Id   uint32
}
Copy after login

Try it on Go Playground.

Note that the JSON text contains field names in lowercase text, but the json package is "smart" enough to match them. If they are completely different, you can tell the json package how to find them in the JSON text (or how to marshal them) using a struct tag, for example:

type Animal2 struct {
    Name string `json:"json_name"`
    Spec string `json:"specification"`
    Id   uint32 `json:"some_custom_id"`
}
Copy after login

The above is the detailed content of Why do structure fields appear empty?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:stackoverflow.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!