美文网首页
解析json

解析json

作者: 夜空中乄最亮的星 | 来源:发表于2018-04-03 16:03 被阅读0次

    golang 编码 json 还比较简单,而解析 json 则非常蛋疼。不像 PHP 一句 json_decode() 就能搞定。之前项目开发中,为了兼容不同客户端的需求,请求的 content-type 可以是 json,也可以是 www-x-urlencode。然后某天前端希望某个后端服务提供 json 的处理,而当时后端使用 java 实现了 www-x-urlencode 的请求,对于突然希望提供 json 处理产生了极大的情绪。当时不太理解,现在看来,对于静态语言解析未知的 JSON 确实是一项挑战。

    与编码 json 的 Marshal 类似,解析 json 也提供了 Unmarshal 方法。对于解析 json,也大致分两步,首先定义结构,然后调用 Unmarshal 方法序列化。我们先从简单的例子开始吧。

    type Account struct {
        Email    string  `json:"email"`
        Password string  `json:"password"`
        Money    float64 `json:"money"`
    }
     
    var jsonString string = `{
        "email": "phpgo@163.com",
        "password" : "123456",
        "money" : 100.5
    }`
     
    func main() {
     
        account := Account{}
        err := json.Unmarshal([]byte(jsonString), &account)
        if err != nil {
            log.Fatal(err)
        }
     
        fmt.Printf("%+v\n", account)
    }
    输出:
    {Email:phpgo@163.com Password:123456 Money:100.5}
    

    相关文章

      网友评论

          本文标题:解析json

          本文链接:https://www.haomeiwen.com/subject/fjqchftx.html