英文:
Parse key containing unicode characters in JSON with Go
问题
你好!以下是翻译好的内容:
我有一个像这样的 API 响应:
{
"Pass ✔": true
}
在 Go 语言中,我使用了以下代码:
type Status struct {
Pass bool `json:"Pass ✔"`
}
// ...
var s Status
json.Unmarshal(body, &s)
fmt.Println(s.Pass) // false,但应该是 true
我应该如何正确地解析这个 JSON 文档?
英文:
I have an API response like this:
{
"Pass ✔": true
}
In Go I use this code:
type Status struct {
Pass bool `json:"Pass ✔"`
}
// ...
var s Status
json.Unmarshal(body, &s)
fmt.Println(s.Pass) // false, where it should be true
How can I correctly unmarshal this JSON document?
答案1
得分: 1
如其他人所提到的,目前还不能做到这一点。作为一种解决方法,你可以尝试以下代码:
package main
import (
"encoding/json"
"fmt"
)
type status map[string]bool
func (s status) pass() bool {
return s["Pass ✔"]
}
func main() {
data := []byte(`{"Pass ✔": true}`)
var stat status
json.Unmarshal(data, &stat)
pass := stat.pass()
fmt.Println(pass) // true
}
英文:
As others mentioned, it's not currently possible to do that. As a workaround, you could do something like this:
package main
import (
"encoding/json"
"fmt"
)
type status map[string]bool
func (s status) pass() bool {
return s["Pass ✔"]
}
func main() {
data := []byte(`{"Pass ✔": true}`)
var stat status
json.Unmarshal(data, &stat)
pass := stat.pass()
fmt.Println(pass) // true
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论