我试图使用json包将Go struct转换为JSON,但我得到的只是{}.我确信这是非常明显的事情,但我看不到.

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

推荐答案

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

Output:

{"Name":"Frank"}

Json相关问答推荐

使用jq解析多层json

如何使用表键名称GROUP_BY

如何循环访问多个子数组并在单个JSON中检索数据点

Jolt Spec 跳过数组中的第一个元素

Oracle JSON 查询中的动态列列表

使用 jq 如何更改键的值?

从包含 JSON 对象序列的文件中获取第一个 JSON 对象

如何使用jolt将嵌套数据变成线性数据

如何使用 jq 在连续的 json 记录流上调用操作

为什么根据其他工具,来自 aws rds 的 JSON 在 Docker 中格式错误运行?

提交后使用 Rails 7 结合 JSON 标签进行标记

使用 SwiftUI 在 API 调用中解码嵌套 JSON 响应时遇到问题

Powershell 无法从名为 count 的键中获取价值

什么是类型和类型令牌?

jquery用json数据填充下拉列表

如何将有向无环图 (DAG) 存储为 JSON?

在 Webpack 中加载静态 JSON 文件

与classic 规范化表相比,postgres JSON 索引是否足够高效?

如何从 MVC 控制器返回 Json 对象以查看

处理 HTTP 请求正文中的可选 JSON 字段