GoLang Sruct到JSON不转换

GoLang Sruct到JSON不转换,json,struct,go,Json,Struct,Go,在填充数据之后,我正在尝试将结构“Sim”转换为JSON 当我打印var s时,它显示正确的信息,当我打印数据时,它显示空白 如何将Struct转换为JSON 简化代码如下: type Sim struct { yr, ag, av, db, wd, st []int withdrawal []string } func main() { // Creating simulation var s Sim // Filling with data

在填充数据之后,我正在尝试将结构“Sim”转换为JSON

当我打印var s时,它显示正确的信息,当我打印数据时,它显示空白

如何将Struct转换为JSON

简化代码如下:

type Sim struct {
    yr, ag, av, db, wd, st []int
    withdrawal []string
}

func main() {
    // Creating simulation
    var s Sim

    // Filling with data
    s = simulate(15000, 60, 65, 90, 2015, 10.0, 140000.0, true, s)

    // Converting to JSON, for transmission over web
    data, err := json.Marshal(s)
    if err != nil {
        fmt.Println(err)
        return
    }

    // Data is correct
    fmt.Println(s)

    // Prints: {}
    fmt.Println(string(data))
}

结构中的字段以小写开头,因此它们不会编组为JSON。让它们以大写字母开头

package main

import "encoding/json"
import "fmt"

type Sim struct {
    Yr, Ag, Av, Db, Wd, St []int
    Withdrawal             []string
}

func main() {
    // Creating simulation
    var s Sim

    // Converting to JSON, for transmission over web
    data, err := json.Marshal(s)
    if err != nil {
        fmt.Println(err)
        return
    }

    // Data is correct
    fmt.Println(s)

    // Prints: {}
    fmt.Println(string(data))
}


是的,你抢先了我一步,我才意识到这一点。谢谢(只要计时器允许,我将在3分钟内接受)这可能是关于JSON(un)封送和非导出字段的第300个问题。元问题:真的没有人能在包编码/json的文档中找到这些信息吗?这是不是太复杂了?为什么一次又一次地问这个问题呢?老实说,我读了5个问题,直到我把我的问题贴出来后,我才发现其中一个问题在谈论要求的上限。我甚至观看了谷歌工程师关于它的一次演讲,他们使用了大写字母,但没有解释这一决定的意义。此外,我一生中编写了大量代码,虽然许多语言都使用大写字母来表示意思,但我从未见过像这样强制执行的语言。这是Go Tour中“基础知识”一章的第三页:。(基础一章是欢迎一章之后的第一章。)整个旅程涵盖了几乎所有需要知道的内容,可能需要两个小时。所有语言都有一些看似武断的规则需要学习。我可以说,对于某些语言,导出的标识符需要在单独的头文件中重新声明是没有意义的。