下面是我在 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")
}
}
关于json - 无法在golang程序中解析json值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49913888/