登录
首页 >  Golang >  Go问答

如何用结构体键中的连字符解组 json 字符串?

来源:stackoverflow

时间:2024-04-24 11:18:34 451浏览 收藏

哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《如何用结构体键中的连字符解组 json 字符串?》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

问题内容

我有以下代码,可以,它会打印 bob

package main

import (
    "encoding/json"
    "fmt"
)

type user struct {
    username string  // line2
    age  int
}

func main() {
    var u user
    str := `{"username":"bob", "age": 20}` // line1
    json.unmarshal([]byte(str), &u)
    fmt.println(u.username)
}

不幸的是,在实际情况中,下一个是 line1 中的 json 字符串,您可以看到密钥中有一个连字符(-)。

str := `{"user-Name":"Bob", "age": 20}`

众所周知,为了自动解组json字符串,我们必须在struct中定义一个与json字符串中的键同名的成员,当然需要将其设置为大写。所以我尝试将 line2 更改为 user-name string,但是 -go 变量名中无效。我该怎么办?


解决方案


只需使用 struct tags 将结构体字段映射到 json 属性:

type User struct {
    UserName string `json:"user-Name"`
    Age      int
}

这样就可以了,在Go Playground上试试。

本篇关于《如何用结构体键中的连字符解组 json 字符串?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

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