当前位置: 首页 > 面试题库 >

将Go结构转换为JSON

谷玉韵
2023-03-14
问题内容

我正在尝试使用该json包将Go结构转换为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))
}

然后,当我尝试运行它时,我得到以下信息:

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

问题答案:

您需要导出的User.name字段,以便在json包装可以看到它。将name字段重命名为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"}


 类似资料:
  • 问题内容: 在将结果转换为JSON之前,我不想使用结构。假设我有一些结果: 我可以在 docs 变量中收集所有结果,并在 doc 变量中收集最后一个结果: 我可以轻松地将最后的结果转换为JSON,而无需使用任何结构: 我无法将文档转换为JSON,因此无法在我的Rest服务器中使用。 更新2019-01-17: 我在我的REST服务器中使用result像这样: 因此它不可能是遍历值的循环。问题:如何

  • 问题内容: 我试图在Go中创建一个通用方法,该方法将填充来自的使用数据。例如,方法签名和用法可能类似于: 我知道可以使用JSON作为中介来完成;还有另一种更有效的方法吗? 问题答案: 最简单的方法是使用https://github.com/mitchellh/mapstructure 如果您想自己做,则可以执行以下操作: http://play.golang.org/p/tN8mxT_V9h

  • 问题内容: 有没有一种方法可以将Swift结构的地址转换为无效的UnsafeMutablePointer? 我尝试了一下但没有成功: 谢谢! 编辑: 我实际上正在尝试 将上下文 移植到Swift中 学习CoreAudio 的第一个示例。 这是我到目前为止所做的: 我正在努力留在Swift中,但是如果事实证明这是一个问题而不是优势,那么我最终将链接到C函数。 编辑:底线 如果您因为试图在Swift中

  • 我试图在Go中创建一个泛型方法,该方法将使用来自< code > map[string]interface { } 的数据填充< code>struct。例如,方法签名和用法可能如下所示: 我知道使用JSON作为中介可以做到这一点;有没有其他更有效的方法?

  • 问题内容: 但是,我仍然无法将csv文件转换为JSON的层次结构。我在stackoverflow上找到的脚本是特定于某个问题的。假设必须对三个变量进行分组: 这将导致这样的JSON文件(据我尝试): 这些必须分组为嵌套结构,例如: 我尝试了该站点上的每个脚本,但是无法创建可以使flare.json这样的通用函数。我可以发布代码,但这就像上面提供的链接一样。因此,我要求一个简单的代码(或可以帮助我的

  • 问题内容: 我在此上浪费了很多时间。递归部分非常虚幻。 对于未知深度的给定HTML结构,我需要转换为JSON。 (我从正在构建的某些YAML i18n翻译系统中使用此功能) 我的一般想法是深入了解,直到找到,然后使用的键/值创建一个对象,然后返回该对象,因此它将是最后到达的KEY的值。 (是的,开发有点复杂,但非常有趣) JSBIN游乐场 -实时代码示例 我无法让递归函数正常工作,无法输出所需的J