解码json,包括json编码字符串

解码json,包括json编码字符串,json,go,decode,Json,Go,Decode,嘿,伙计们,我正在从外部Api获取websocket信息,它以这种方式给我json响应: `{"name":"message","args":["{\"method\":\"chatMsg\",\"params\":{\"channel\":\"channel\",\"name\":\"name\",\"nameColor\":\"B5B11E\",\"text\":\"<a href=\\\"https://play.spotify.com/browse\\\" target=\\\"

嘿,伙计们,我正在从外部Api获取websocket信息,它以这种方式给我json响应:

 `{"name":"message","args":["{\"method\":\"chatMsg\",\"params\":{\"channel\":\"channel\",\"name\":\"name\",\"nameColor\":\"B5B11E\",\"text\":\"<a href=\\\"https://play.spotify.com/browse\\\" target=\\\"_blank\\\">https://play.spotify.com/browse</a>\",\"time\":1455397119}}"]}`
然后用密码解码

sReplace := strings.NewReplacer(`"{`, "{", `"]`, "]", "\\", ``)
strN := sReplace.Replace(str)
r := strings.NewReader(strN)
d := json.NewDecoder(r)
m := main{}
我犯了一个错误

invalid character 'h' after object key:value pair

我知道错误是文本字段值的结果。有什么好方法可以清理它或者告诉解码器忽略文本字段的内容吗?

应用程序正在分析包含子字符串的数据
“text”:“\”,““time\”:1455397119}}]}`
var m main
如果err:=json.Unmarshal([]字节(str),&m);err!=nil{
log.Fatal(错误)
}
变量args arg
如果err:=json.Unmarshal([]字节(m.Args[0]),&Args);err!=nil{
log.Fatal(错误)
}

应用程序正在分析包含子字符串的数据
“text”:“\”,““time\”:1455397119}}]}`
var m main
如果err:=json.Unmarshal([]字节(str),&m);呃!=零{
log.Fatal(错误)
}
变量args arg
如果err:=json.Unmarshal([]字节(m.Args[0]),&Args);呃!=零{
log.Fatal(错误)
}

哇,非常感谢,我一整天都在想办法。这个struc和json对我来说都很难:(哇,非常感谢你,我一整天都在想它。这个struc和json对我来说都很难:(
invalid character 'h' after object key:value pair
type main struct {
  Name string   `json:"name"`
  Args []string `json:"args"`
}

type arg struct {
  Method string `json:"method"`
  Params par    `json:"params"`
}
type par struct {
  Channel   string `json:"channel,omitempty"`
  Name      string `json:"name,omitempty"`
  NameColor string `json:"nameColor,omitempty"`
  Text      string `json:"text,omitempty"`
  Time      int64  `json:"time,omitempty"`
}

str := `{"name":"message","args":["{\"method\":\"chatMsg\",\"params\":{\"channel\":\"channel\",\"name\":\"name\",\"nameColor\":\"B5B11E\",\"text\":\"<a href=\\\"https://play.spotify.com/browse\\\" target=\\\"_blank\\\">https://play.spotify.com/browse</a>\",\"time\":1455397119}}"]}`
var m main
if err := json.Unmarshal([]byte(str), &m); err != nil {
    log.Fatal(err)
}
var args arg
if err := json.Unmarshal([]byte(m.Args[0]), &args); err != nil {
    log.Fatal(err)
}