登录
首页 >  Golang >  Go问答

json.Unmarshal json 字符串到对象为空结果

来源:stackoverflow

时间:2024-04-05 21:21:29 123浏览 收藏

积累知识,胜过积蓄金银!毕竟在Golang开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《json.Unmarshal json 字符串到对象为空结果》,就带大家讲解一下知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我有一个非常简单的程序,如下所示:

package main

import (
    "encoding/json"
    "fmt"
)

type RunCommand struct{
    level string `json:"level"`
    caller string `json:"caller"`
    msg string `json:"msg"`
    cmd string `json:"cmd"`
}

func main() {
    content := `{"level":"info","caller":"my.go:10","msg":"run","cmd":"--parse"}`
    runCommand := RunCommand{}
    e := json.Unmarshal([]byte(content), &runCommand)
    if e != nil {
        fmt.Println("Unmarshal error")
    }
    fmt.Println(runCommand.level)
}

我希望能够将“content”中的所有 json 字段解析为“runcommand”对象,但实际上,最终的“fmt.println”什么也没有打印。我哪里出错了?


解决方案


您必须有导出字段,如下所示:

type RunCommand struct{
    Level string `json:"level"`
    Caller string `json:"caller"`
    Msg string `json:"msg"`
    Cmd string `json:"cmd"`
}

现在您可以使用:fmt.println(runcommand.level),否则json.unmarshal将忽略非导出字段。

好了,本文到此结束,带大家了解了《json.Unmarshal json 字符串到对象为空结果》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>