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

GoLang中的Marshall和UnMarshall JSON内容

尉迟景福
2023-03-14
问题内容

我有一个示例json文件,其结构如下

{
  "method":"brute_force",
  "bc":"select * from blah;",
  "gc":[
    "select sum(year) from blah;",
    "select count(*) from table;"
      ]
}

我正在尝试编写一个go程序,该程序可以读取此文件并操作json内容。

package main 
import (
    "fmt"
    "encoding/json"
    "io/ioutil"
    )


type Response2 struct {
    method string
    bc string
    gc []string
}

func main() {
    file,_ := ioutil.ReadFile("config.json")
    fmt.Printf("%s",string(file))

        res := &Response2{}


        json.Unmarshal([]byte(string(file)), &res)
        fmt.Println(res)

        fmt.Println(res.method)
        fmt.Println(res.gc)

}

res.method和res.gc不打印任何内容。我不知道怎么了。


问题答案:
type Response2 struct {
    method string
    bc string
    gc []string
}

字段的名称必须为大写,否则Json模块将无法访问它们(它们是模块专有的)。您可以使用json标签指定字段和名称之间的匹配项

type Response2 struct {
    Method string `json:"method"`
    Bc string `json:"bc"`
    Gc []string `json:"gc"`
}


 类似资料:
  • 问题内容: 我正在尝试将地图输出为XML数据,但是收到以下错误: 编组映射适用于JSON,因此我不明白为什么它不适用于XML。使用Struct真的是唯一的方法吗? 问题答案: 我最终按照DaveC的建议使用xml.Marshaler解决了这个问题 资料来源:https : //gist.github.com/jackspirou/4477e37d1f1c043806e0 现在,只需调用即可将地图编

  • 我只想循环一个具有相同xml元素但具有不同ID的jaxb封送,这与下面的代码不同,我正在为每个ID解析新的xml文件,并重写旧的xml文件。 数据[][]是从矩阵中读取的,数据[i][0]代表一个ID列表,我想将这些ID设置为客户ID。 以上代码的输出: 我想把所有ID输出到一个xml文件中,有什么提示吗?

  • 问题内容: 基于Golang关于CFB解密的文档,我写了一个最小的工作示例来解密使用AES CFB加密的字符串,然后使用python3编码的base 64。 当邮件在Golang中加密(使用Golang doc示例中的加密功能)时,golang解密工作正常。但是,当我使用python crypto包在python脚本中加密消息时,我无法在golang脚本中成功解密它。我没有得到正确的字节。 两种A

  • 问题内容: 我是Golang的新手,正在做http://tour.golang.org/。谁能向我解释 第1、3、5和7行, 特别是’*’和’&’的作用吗?我的意思是通过在函数声明中提及它们,它们应该/应该做什么?一个玩具的例子: 看起来它们就像我们在C ++中一样。但是我无法将这些概念与此处的内容联系起来。换句话说,当我在Go的函数声明中使用“ *”和“&”时,它们会做什么。 编辑: 我知道引用

  • 我希望我已经提供了所需的所有信息。在这个专家小组中,请大家在这个问题上帮助我。任何小小的帮助对我都是最大的帮助。提前感谢您的帮助。

  • 让我们假设以下场景: 我有以下类型的对象列表: 字段和只是为了表明该类有一些常规成员。您可以假设知道如何将这些类转换为xml。 是一个接口,其中的实现我不知道,但由插件提供。插件可以被要求提供任意代码,但我想让它尽可能简单。 我想将这些对象保存并加载到xml中。请注意,在加载xml时,并不是所有的实现都存在(xml可能是用不同的插件集编写的)。我希望在再次保存时仍能读取xml,并且不会丢失任何信息