3 回答

TA貢獻1877條經驗 獲得超6個贊
例如:
package main
import (
"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)
}
產生:
地圖[貓:一只貓狗:一只狗]

TA貢獻1802條經驗 獲得超4個贊
您的 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 main
import (
"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)
}
- 3 回答
- 0 關注
- 200 瀏覽
添加回答
舉報