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

Hey guys I am getting websocket information from external Api and it's give me json response in this way:

 `{"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}}"]}`

I am putting it into this struc

type main struct {

Name string `json:"name"`
Args []arg  `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"`
}

and decode it with code

sReplace := strings.NewReplacer(`"{`, "{", `"]`, "]", "\\", ``)
strN := sReplace.Replace(str)
r := strings.NewReader(strN)
d := json.NewDecoder(r)
m := main{}

I am getting error

invalid character 'h' after object key:value pair

I know that the error is result of text field value. Is there any good way to clean it up or tell the decoder to ignore content of text field?

查看全部
dongxing1853
dongxing1853
2016/02/14 01:02
  • json
  • decode
  • 点赞
  • 收藏
  • 回答
    私信
满意答案
查看全部

1个回复