Golang:如何解析同时获得特征和数据的json?

我得到了一个带有 {{"word name":"word meaning"},{"word name":"word meaning"},...} 的 dic 数据,我想解析为单词的映射。我尝试使用 interface{} 编写代码,但我无法想象该怎么做。谢谢阅读。


慕森王
浏览 162回答 3
3回答

慕哥9229398

例如:package mainimport (    "encoding/json"    "fmt")var jsonText = []byte(`[    {"Name": "Cat", "Meaning": "A Cat"},    {"Name": "Dog", "Meaning": "A Dog"}]`)type Word struct {    Name, Meaning string}func main() {    var words []Word    dict := make(map[string]string)    if err := json.Unmarshal(jsonText, &words); err != nil {        fmt.Println("error:", err)    }    for _, w := range words {        dict[w.Name] = w.Meaning    }    fmt.Printf("%v", dict)}产生:地图[猫:一只猫狗:一只狗]

慕虎7371278

您的 JSON 应如下所示{    "word 1": "meaning 1",    "word 2": "meaning 2"}为了实现这一点,您可以使用类似的东西func fixJson(s string) string {    s = strings.Replace(s, "{", "", -1)    s = strings.Replace(s, "}", "", -1)    return "{" + s + "}"}完整代码package mainimport (    "encoding/json"    "strings"    "fmt"    "log")func fixJson(s string) string {    s = strings.Replace(s, "{", "", -1)    s = strings.Replace(s, "}", "", -1)    return "{" + s + "}"}func main() {    var words map[string]string    var text = `{        {"word 1": "meaning 1"},        {"word 2": "meaning 2"}    }`    var jsonText = []byte(fixJson(text))    err := json.Unmarshal(jsonText, &words)    if err != nil {        log.Fatal(err)    }    fmt.Println(words)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go