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

在Go中,如何获取结构的字符串表示形式?

巫马玉堂
2023-03-14
问题内容

对于我的应用程序,字符串是否为人类可读的都没有关系。


问题答案:

将结构编码为字符串的一种流行方法是使用JSON。

您有某些限制,例如无法获取所有信息(例如,每个字段的特定类型),仅序列化导出的字段以及不处理递归值。但这是序列化数据的简单标准方法

工作示例:

package main

import (
    "fmt"
    "encoding/json"
)

type s struct {
    Int       int
    String    string
    ByteSlice []byte
}

func main() {
    a := &s{42, "Hello World!", []byte{0,1,2,3,4}}

    out, err := json.Marshal(a)
    if err != nil {
        panic (err)
    }

    fmt.Println(string(out))
}

给出以下输出:

{"Int":42,"String":"Hello World!","ByteSlice":"AAECAwQ="}

https://play.golang.org/p/sx-xdSxAOG



 类似资料:
  • 问题内容: 假设我定义了以下类型: 我将如何以编程方式将类型作为字符串获取,因此以后可能很容易重构,而不是: 我不太喜欢,因为它实例化了它,也可以从Interface实例化。 问题答案: 您可以使用包装(包装也可以在内部使用)。您可以从 指向 该类型的 指针 开始,并使用没有分配的 类型化_指针值,并且可以使用来从其描述符导航到指针的 _基本 类型(或 元素 类型)的描述符。 例: 输出(在Go

  • 问题内容: 我有一个C python扩展名,我想打印一些诊断信息。 我收到一个字符串作为PyObject *。 获取此对象的字符串表示形式(使其可用作const char *)的规范方法是什么? 更新: 澄清以强调访问为const char *。 问题答案: 使用(模仿Python的函数)或(模仿),然后调用get (您可以并且通常应该将其用作,例如: 任何人都可以使用此方法。如果您完全确定是Py

  • 问题内容: 我希望对一个值建模,该值可以有两种可能的形式:不存在或字符串。 自然的方式来做到这一点是,或者,或者,等。然而,Go没有变异类型是这样的。 然后,我认为在Java,C等之后,替代方案将是可空性或在Go中。但是,不是Go类型的成员。 搜索后,我想到使用type 。这可能有效,但看起来很尴尬(例如,我无法以与获取结构文字的地址相同的方式获取字符串文字的地址)。 在Go中为这种值建模的惯用方

  • 问题内容: 假设我有一个这样的类(并进一步假设所有私有变量: 现在,如果要构建此类的toString()表示形式,则可以在Item类中执行以下操作: 但是,如果我在类中说了15个私有变量,该怎么办?我是否需要像这样写出每个变量的名称? 理想情况下,我想遍历该类的私有变量列表并构造字符串表示形式来结束任务: 也许是toJSON方法,我仍然需要访问这些变量的名称。有什么建议? 问题答案: 您可以这样做

  • 问题内容: 我想尝试从Go中的JSON获取键值,但是我不确定该怎么做。 我已经能够使用simplejson来读取json值,但是我却无法找出如何获取键值。 谁能指出正确的方向和/或帮助我? 谢谢! 问题答案: 您可以通过执行以下操作来获取JSON结构的顶级密钥: 请注意,键的顺序不得与JSON结构中的键顺序相对应。它们在最后一片中的顺序甚至会在完全相同的代码的不同运行之间有所不同。这是由于地图迭代

  • 问题内容: 试用Spring-JDBC。我以此为参考。我正在尝试获取姓氏相同的演员列表。运行这段代码给了我想要的结果: 我姓氏。如何获得演员列表和我拥有的列表?我是否遍历姓氏列表并每次调用一次,或者spring提供了一种方式来进行迭代并为我获取结果?请指教。 问题答案: 使用IN子句。 如何在JDBCTemplates中使用SELECTIN子句?