json - 无法在golang程序中解析json值

标签 json go

下面是我在 Go 中的示例代码。我想解析 B 的值并检查键 'status' 的值

package main

import (
    "encoding/json"
    "fmt"
)

type ValidateUser struct {
    UserName, status, sessionID, timestamp string
}

func main() {
    // This JSON contains an int array.
    B := "{\"UserName\": \"Moulali\",\"status\": \"valid_user\"}"

    fmt.Println("outside if")
    fmt.Println("ValueOfB = %v", B)

    bytes := []byte(B)

    var validateUser ValidateUser
    json.Unmarshal(bytes, &validateUser)
    if validateUser.status == "valid_user" {
        fmt.Printf("Valid User")
    }
}

最佳答案

status 应该被导出(ValidateUser.Status)。只需对您的代码稍作修改:

package main

import (
    "encoding/json"
    "fmt"
)

type ValidateUser struct {
    UserName string
    // export Status, and map to json field `status`
    Status string `json: "status"`
    sessionID string
    timestamp string
}

func main() {
    // This JSON contains an int array.
    B := "{\"UserName\": \"Moulali\",\"status\": \"valid_user\"}"

    fmt.Println("outside if")
    fmt.Println("ValueOfB = %v", B)

    bytes := []byte(B)

    var validateUser ValidateUser
    json.Unmarshal(bytes, &validateUser)

    // reference ValidateUser.Status (capital s)
    if validateUser.Status == "valid_user" {
        fmt.Printf("Valid User")
    }
}

代码链接:https://play.golang.org/p/WN4cOz_YBLF

关于json - 无法在golang程序中解析json值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49913888/

相关文章:

json - Gson转换为JSON时再次转义转义序列-Android

java - 如何将java列表对象的特定字段转换为jsonarray

go - 使用 Go 的 time.Format 时转义数字

golang gin 加载 html 超时

go - 将外部包添加到 Hyperledger fabric -go smartcontract

javascript - 将 json 对象嵌套到具有重复父详细信息的单个 json 对象中以构造 html 表

php - 隐藏 PHP JSON 输出不显示在 View 源中

php - 将 JSON 导入 Mysql

go - 如何在运行时更改变量类型

mongodb - 使用 mgo 更新插入到分片 MongoDB 错误 "full shard key must be in update object for collection:..."