【问题标题】:deserialize comma-separated values into struct将逗号分隔的值反序列化为结构
【发布时间】:2016-03-20 22:18:29
【问题描述】:

假设我有一个这样的字符串:

key1=val1、key2=val2(以此类推)

我想将它反序列化为一个结构(我在代码中定义的类型),就像我们对 JSON 或 XML 所做的那样。 Ofc 可以写一个解码器函数,但我认为它可能存在,因为编写自己的反序列化器可能需要一些时间,在这样做之前我认为可能有 Go 的标准库方式。

【问题讨论】:

标签: serialization go comma


【解决方案1】:

不知道有一个图书馆可以满足您的要求。但是使用这样的字符串很容易。如果只需要几种类型的结构,我会使用 strings.Split(s, ", ") 创建一个 key=value 字符串切片,然后使用 strings.Split(ss, "= ") 如果我想快速编写不需要高效的代码,请再次在片段上。然后通过 switch 语句运行键值并更新匹配的结构字段。

如果我想让它变得超级高效,我会围绕 switch 语句编写一个循环,将两个字节切片重置为每个后续键和值,而不是先创建字符串切片。

另一方面,如果我想快速编写代码并使用多种类型的结构,我会将字符串修改为合法的 JSON,然后使用 JSON Unmarshal() 函数。写起来会很快,而且 json.Unmarshal() 错误会告诉你是否遗漏了什么。

【讨论】:

    猜你喜欢
    • 2011-04-03
    • 2016-05-03
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多