将 Go 结构体转换为 JSON [英] Converting Go struct to JSON

查看:49
本文介绍了将 Go 结构体转换为 JSON的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 json 包将 Go 结构转换为 JSON,但我得到的只是 {}.我确定这是完全显而易见的事情,但我没有看到.

I am trying to convert a Go struct to JSON using the json package but all I get is {}. I am certain it is something totally obvious but I don't see it.

package main

import (
    "fmt"
    "encoding/json"
)

type User struct {
    name string
}

func main() {
    user := &User{name:"Frank"}
    b, err := json.Marshal(user)
    if err != nil {
        fmt.Printf("Error: %s", err)
        return;
    }
    fmt.Println(string(b))
}

然后当我尝试运行它时,我得到了这个:

Then when I try to run it I get this:

$ 6g test.go && 6l -o test test.6 && ./test 
{}

推荐答案

您需要导出User.name 字段,以便 json 包可以看到它.将 name 字段重命名为 Name.

You need to export the User.name field so that the json package can see it. Rename the name field to Name.

package main

import (
    "fmt"
    "encoding/json"
)

type User struct {
    Name string
}

func main() {
    user := &User{Name: "Frank"}
    b, err := json.Marshal(user)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(string(b))
}

输出:

{"Name":"Frank"}

这篇关于将 Go 结构体转换为 JSON的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆