首頁 >後端開發 >Golang >golang json'true'不是True?

golang json'true'不是True?

WBOY
WBOY轉載
2024-02-10 12:00:11483瀏覽

golang json\'true\'不是True?

php小編西瓜今天來為大家解答一個關於golang的疑問:「golang中的json'true'不是True嗎?」在golang中,json包裡的Unmarshal函數將JSON資料解析為Go語言結構體時,對於布林類型的值,'true'是不等於True的。這是因為在JSON中,布林類型的值是用小寫的'true'和'false'表示的,而在Go語言中,布林類型的值是用大寫的True和False表示的。這個細微的差別可能會導致一些問題和困惑,因此在使用golang解析JSON資料時,我們需要注意這個差異。

問題內容

我剛學golang,json轉struct,取得boolean值總是false, 如果我的json「記住」:true,得到的布林值是true,該如何解決? 我的程式碼

package main

import (
    "encoding/json"
    "fmt"
)

type AdminInfoRequest struct {
    Id          uint   `json:"id"`
    UserName    string `json:"username"`
    Password    string `json:"password"`
    CaptchaId   string `json:"captcha_id"`
    Captcha     string `json:"captcha"`
    Remember    bool   `json:"remember"`
    Status      uint   `json:"status"`
    GroupId     uint   `json:"group_id"`
    OldPassword string `json:"old_password"`
    RePassword  string `json:"re_password"`
}

func main() {
    var s AdminInfoRequest
    j := `{"username":"admin","remember":"true"}`
    json.Unmarshal([]byte(j), &s)
    fmt.Println(s.UserName)
    fmt.Println(s.Remember)
}

解決方法

在 json 中,"true" 是一個字串值。試試這個:

j := `{"username":"admin","remember":true}`

以上是golang json'true'不是True?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除