为啥我的 json.Marshal() 啥也没返回? [复制]

Posted

技术标签:

【中文标题】为啥我的 json.Marshal() 啥也没返回? [复制]【英文标题】:Why is my json.Marshal() returning nothing? [duplicate]为什么我的 json.Marshal() 什么也没返回? [复制] 【发布时间】:2021-11-26 00:13:11 【问题描述】:

我正在尝试创建具有以下结构的 JSON 对象片段:

[
    "id":"some identifier",
    "id":"some other identifier"
]

我的代码正在生成[,]。为什么会这样?

代码如下:

    type Topic struct 
        id string
    

    topics := []Topic
        id: "some identifier",
        id: "some other identifier",
    

    fmt.Println(topics) // prints the topics as is, before marshaling

    tops, err := json.Marshal(topics)
    if err != nil 
        fmt.Println("got an error", err)
    

    fmt.Println(string(tops)) // does not print the topics

【问题讨论】:

id导出,这样json marshaler就可以看到struct的字段了。 【参考方案1】:

因为 json 只看到公共字段 - 例如以大写开头。

这样做:

type Topic struct 
    ID string `json:"id"`


topics := []Topic
    ID: "some identifier",
    ID: "some other identifier",

【讨论】:

我想你的意思是说“exported”而不是“public”。 Go 导出的概念不同于具有公共特性的编程语言中的公共概念。 非常感谢!

以上是关于为啥我的 json.Marshal() 啥也没返回? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

为啥当我在 discord bot 上执行命令时啥也没发生

为啥当我在导航控制器中重置视图控制器的框架时啥也没发生

为啥我啥也没做,wireshark却从打开就一直在捕捉报文呢?

普罗米修斯一段时间后啥也没返回

json.Marshal(struct) 返回“”

令牌啥也没给我,我检查了我的代码很多次