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

WBOY
リリース: 2024-02-10 12:00:11
転載
443 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!