ホームページ >バックエンド開発 >Golang >golang json 'true' は True ではありませんか?

golang json 'true' は True ではありませんか?

WBOY
WBOY転載
2024-02-10 12:00:11493ブラウズ

golang json\'true\'不是True?

php エディタの Xigua が、今日は golang に関する質問に答えます: 「golang の json 'true' は True ではないですか?」 golang では、json パッケージの Unmarshal 関数 JSON データを解析するときGo 言語構造では、「true」はブール型値の True と等しくありません。これは、JSON では Boolean 型の値が小文字の「true」と「false」で表されるのに対し、Go 言語では Boolean 型の値が大文字の True と False で表されるためです。この微妙な違いが問題や混乱を引き起こす可能性があるため、golang を使用して JSON データを解析する場合はこの違いに注意する必要があります。

質問内容

golangを学び、jsonをstructに変換し、得られるブール値は常に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)
}

Solution

json では、"true" は文字列値です。これを試して:### リーリー

以上がgolang json 'true' は True ではありませんか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。