栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将字符串转换为json或struct

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将字符串转换为json或struct

您实际上只需要一个结构,如注释中所述,在字段上的正确注释将产生所需的结果。JSON并不是一种非常多种多样的数据格式,它定义明确,并且任何json片段,无论它多么复杂和令人困惑,都可以很容易地在模式和Go和对象中以100%的精度表示。其他大多数OO编程语言。这是一个例子。

package mainimport (    "fmt"    "encoding/json")type Data struct {    Votes *Votes `json:"votes"`    Count string `json:"count,omitempty"`}type Votes struct {    OptionA string `json:"option_A"`}func main() {    s := `{ "votes": { "option_A": "3" } }`    data:= &Data{        Votes: &Votes{},    }    err := json.Unmarshal([]byte(s), data)    fmt.Println(err)    fmt.Println(data.Votes)    s2, _ := json.Marshal(data)    fmt.Println(string(s2))    data.Count = "2"    s3, _ := json.Marshal(data)    fmt.Println(string(s3))}

https://play.golang.org/p/ScuxESTW5i

根据您最近的评论,您可以通过使用

interface{}
代表除计数之外的数据,使计数成为字符串并将其余的blob推入到,
interface{}
从而基本上可以接受任何内容,来解决这一问题。话虽这么说,Go是一种具有相当严格的类型系统的静态类型语言,但重申一下,您的声明“它可以是任何东西”是不正确的。JSON不能是任何东西。对于任何JSON片段,都有一个模式,一个模式可以定义JSON的许多变体。我建议您花一些时间来理解数据的结构,而不是将某些东西混在一起,因为它们是绝对无法定义的,并且对于知道自己正在做什么的人来说可能很容易。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/403770.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号